Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor get_gas_spent #1051

Merged
merged 37 commits into from
Jun 18, 2022
Merged

Refactor get_gas_spent #1051

merged 37 commits into from
Jun 18, 2022

Conversation

gshep
Copy link
Member

@gshep gshep commented Jun 13, 2022

Resolves #1049

  • rename to calculate_gas_info
  • use extrinsics in the function
  • remove redundant code
  • update rpc calls

@gear-tech/dev

Release Notes: get_gas_spent was renamed to calculate_gas_info to render its new logic: more details about required gas for execution are now provided by the function. New function argument added that controls whether execution of secondary programs may result in a trap. The function calculates gas amount with greater precision.

@gshep gshep force-pushed the gshep/issue-1049 branch from bb3ce7e to be40a1e Compare June 13, 2022 14:08
@gshep gshep force-pushed the gshep/issue-1049 branch from be40a1e to ba3b62e Compare June 14, 2022 06:40
@github-actions
Copy link
Contributor

github-actions bot commented Jun 14, 2022

c20288c
Pallet tests (values are in nanosegconds)

Total execution time

name current median average lower/upper quartile min max
Total time 82 143 000 000; +3099.96% ❗ 2 567 000 000 4 537 890 000 (2 519 000 000; 2 749 500 000) 2 453 000 000 126 968 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 39 000 000; +56.00% ❗ 25 000 000 36 190 000 (20 000 000; 36 000 000) 5 000 000 265 000 000
tests::all_keys_are_cleared 51 000 000; +34.21% ❗ 38 000 000 52 840 000 (29 000 000; 50 500 000) 11 000 000 266 000 000
tests::gas_free_after_consumed 32 000 000; -17.95% ✔️ 39 000 000 55 190 000 (28 000 000; 55 500 000) 10 000 000 396 000 000
tests::limit_vs_origin 53 000 000; +29.27% ✔️ 41 000 000 57 000 000 (32 000 000; 55 000 000) 10 000 000 282 000 000
tests::long_chain 62 000 000; +55.00% ❗ 40 000 000 52 210 000 (28 500 000; 58 000 000) 9 000 000 272 000 000
tests::simple_value_tree 40 000 000; +11.11% ✔️ 36 000 000 48 300 000 (27 000 000; 52 000 000) 9 000 000 373 000 000
tests::split_with_no_value 31 000 000; -23.46% ✔️ 40 500 000 50 240 000 (28 000 000; 52 000 000) 14 000 000 260 000 000
tests::sub_nodes_tree 42 000 000; +9.09% ✔️ 38 500 000 49 090 000 (28 000 000; 52 500 000) 10 000 000 304 000 000
tests::sub_nodes_tree_with_spends 79 000 000; +110.67% ❗ 37 500 000 53 420 000 (26 000 000; 55 500 000) 5 000 000 325 000 000
tests::subtree_gas_limit_remains_intact 35 000 000; +0.00% ✔️ 35 000 000 46 240 000 (27 000 000; 52 000 000) 10 000 000 210 000 000
tests::value_tree_known_errors 39 000 000; +1.30% ✔️ 38 500 000 49 280 000 (26 500 000; 55 000 000) 14 000 000 296 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 48 000 000; +71.43% ❗ 28 000 000 37 630 000 (18 500 000; 40 500 000) 5 000 000 260 000 000
schedule::test::print_test_schedule 39 000 000; +25.81% ✔️ 31 000 000 37 240 000 (23 000 000; 41 000 000) 10 000 000 221 000 000
tests::block_gas_limit_works 46 000 000; -9.80% ✔️ 51 000 000 65 850 000 (38 500 000; 74 000 000) 19 000 000 253 000 000
tests::call_forbidden_function 24 000 000; -48.39% ✔️ 46 500 000 56 360 000 (34 500 000; 60 500 000) 20 000 000 289 000 000
tests::cascading_messages_with_value_do_not_overcharge 332 000 000; +40.68% ❗ 236 000 000 309 350 000 (211 000 000; 321 500 000) 168 000 000 1 244 000 000
tests::claim_value_from_mailbox_works 77 000 000; +50.98% ❗ 51 000 000 63 550 000 (41 500 000; 73 500 000) 18 000 000 332 000 000
tests::defer_program_initialization 89 000 000; -15.64% ✔️ 105 500 000 126 990 000 (78 500 000; 151 500 000) 59 000 000 416 000 000
tests::distributor_distribute 131 000 000; +27.80% ❗ 102 500 000 113 910 000 (78 000 000; 131 000 000) 54 000 000 324 000 000
tests::distributor_initialize 77 000 000; -7.23% ✔️ 83 000 000 97 760 000 (66 000 000; 112 000 000) 35 000 000 406 000 000
tests::events_logging_works 109 000 000; +80.17% ❗ 60 500 000 69 550 000 (42 000 000; 83 500 000) 15 000 000 264 000 000
tests::exit_handle 65 000 000; +5.69% ✔️ 61 500 000 70 830 000 (40 500 000; 83 000 000) 17 000 000 276 000 000
tests::exit_init 91 000 000; +10.98% ✔️ 82 000 000 91 930 000 (64 500 000; 103 500 000) 36 000 000 376 000 000
tests::gas_spent_precalculated 97 000 000; +59.02% ❗ 61 000 000 73 580 000 (50 000 000; 86 500 000) 27 000 000 331 000 000
tests::gas_spent_vs_balance 338 000 000; +174.80% ❗ 123 000 000 142 220 000 (99 500 000; 151 500 000) 63 000 000 713 000 000
tests::init_message_logging_works 171 000 000; +159.09% ❗ 66 000 000 76 090 000 (47 000 000; 87 000 000) 23 000 000 336 000 000
tests::init_wait_reply_exit_cleaned_storage 359 000 000; +199.17% ❗ 120 000 000 134 350 000 (93 000 000; 150 500 000) 68 000 000 389 000 000
tests::lazy_pages 138 000 000; +107.52% ❗ 66 500 000 78 490 000 (52 000 000; 89 500 000) 19 000 000 244 000 000
tests::mailbox_works 188 000 000; +203.23% ❗ 62 000 000 71 070 000 (50 000 000; 81 000 000) 16 000 000 364 000 000
tests::memory_access_cases 88 000 000; +35.38% ❗ 65 000 000 71 120 000 (49 000 000; 83 000 000) 21 000 000 272 000 000
tests::messages_processing_works 182 000 000; +193.55% ‼️ 62 000 000 68 380 000 (51 000 000; 83 500 000) 17 000 000 174 000 000
tests::messages_to_paused_program_skipped 86 000 000; +6.83% ✔️ 80 500 000 94 530 000 (57 500 000; 108 500 000) 27 000 000 359 000 000
tests::messages_to_uninitialized_program_wait 197 000 000; +129.07% ❗ 86 000 000 92 220 000 (65 500 000; 114 000 000) 29 000 000 304 000 000
tests::no_redundant_gas_value_after_exiting 110 000 000; +65.41% ❗ 66 500 000 70 910 000 (47 000 000; 85 500 000) 18 000 000 174 000 000
tests::paused_program_keeps_id 259 000 000; +208.33% ❗ 84 000 000 96 110 000 (65 500 000; 110 500 000) 36 000 000 300 000 000
tests::program_lifecycle_works 81 000 000; +25.58% ✔️ 64 500 000 73 530 000 (48 500 000; 88 500 000) 18 000 000 267 000 000
tests::program_messages_to_paused_program_skipped 116 000 000; -7.57% ✔️ 125 500 000 146 230 000 (108 000 000; 159 500 000) 60 000 000 484 000 000
tests::replies_to_paused_program_skipped 54 000 000; -31.21% ✔️ 78 500 000 91 350 000 (59 500 000; 109 500 000) 28 000 000 368 000 000
tests::restrict_start_section 205 000 000; +233.33% ❗ 61 500 000 67 380 000 (43 500 000; 76 000 000) 24 000 000 420 000 000
tests::resume_program_works 183 000 000; +58.44% ❗ 115 500 000 138 570 000 (96 000 000; 157 000 000) 58 000 000 440 000 000
tests::send_message_expected_failure 143 000 000; +144.44% ❗ 58 500 000 76 010 000 (45 000 000; 81 500 000) 22 000 000 428 000 000
tests::send_message_works 190 000 000; +199.21% ❗ 63 500 000 74 490 000 (48 500 000; 83 000 000) 16 000 000 440 000 000
tests::send_reply_failure_to_claim_from_mailbox 71 000 000; +16.39% ✔️ 61 000 000 72 770 000 (44 500 000; 86 000 000) 26 000 000 452 000 000
tests::send_reply_value_claiming_works 117 000 000; +78.63% ❗ 65 500 000 75 560 000 (43 500 000; 86 000 000) 18 000 000 280 000 000
tests::send_reply_works 113 000 000; +96.52% ❗ 57 500 000 74 190 000 (47 000 000; 80 000 000) 17 000 000 416 000 000
tests::spent_gas_to_reward_block_author_works 57 000 000; -5.00% ✔️ 60 000 000 64 210 000 (45 000 000; 76 000 000) 22 000 000 228 000 000
tests::submit_program_expected_failure 266 000 000; +370.80% ❗ 56 500 000 69 400 000 (42 000 000; 76 500 000) 18 000 000 560 000 000
tests::submit_program_fails_on_duplicate_id 34 000 000; -41.88% ✔️ 58 500 000 69 330 000 (43 500 000; 76 500 000) 17 000 000 544 000 000
tests::test_code_is_not_reset_within_program_submission 211 000 000; +237.60% ❗ 62 500 000 70 150 000 (44 000 000; 83 000 000) 21 000 000 540 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 213 000 000; +246.34% ❗ 61 500 000 71 260 000 (43 000 000; 76 500 000) 19 000 000 372 000 000
tests::test_code_submission_pass 226 000 000; +293.04% ❗ 57 500 000 69 940 000 (39 500 000; 82 500 000) 16 000 000 508 000 000
tests::test_create_program_duplicate 345 000 000; +141.26% ❗ 143 000 000 155 750 000 (118 500 000; 173 500 000) 71 000 000 540 000 000
tests::test_create_program_duplicate_in_one_execution 238 000 000; +149.21% ❗ 95 500 000 113 790 000 (76 500 000; 124 500 000) 42 000 000 529 000 000
tests::test_create_program_miscellaneous 719 000 000; +379.33% ‼️ 150 000 000 170 550 000 (123 500 000; 189 000 000) 74 000 000 614 000 000
tests::test_create_program_no_code_hash 847 000 000; +205.23% ‼️ 277 500 000 299 860 000 (234 500 000; 341 500 000) 173 000 000 632 000 000
tests::test_create_program_simple 578 000 000; +262.38% ‼️ 159 500 000 178 610 000 (133 500 000; 201 500 000) 87 000 000 480 000 000
tests::test_create_program_with_exceeding_value 306 000 000; +282.50% ❗ 80 000 000 90 200 000 (61 500 000; 109 500 000) 27 000 000 336 000 000
tests::test_create_program_with_value_lt_ed 188 000 000; +77.36% ❗ 106 000 000 125 410 000 (89 000 000; 132 000 000) 50 000 000 700 000 000
tests::test_create_program_without_gas_works 242 000 000; +196.93% ❗ 81 500 000 90 680 000 (57 500 000; 104 000 000) 26 000 000 408 000 000
tests::test_message_processing_for_non_existing_destination 142 000 000; +129.03% ❗ 62 000 000 72 370 000 (48 000 000; 79 500 000) 26 000 000 323 000 000
tests::test_reply_to_terminated_program 171 000 000; +106.02% ❗ 83 000 000 95 180 000 (64 000 000; 104 500 000) 24 000 000 481 000 000
tests::test_same_code_submission_fails 131 000 000; +103.10% ❗ 64 500 000 76 020 000 (54 000 000; 81 500 000) 15 000 000 320 000 000
tests::test_two_contracts_composition_works 697 000 000; +207.73% ❗ 226 500 000 255 140 000 (193 000 000; 279 000 000) 136 000 000 753 000 000
tests::uninitialized_program_should_accept_replies 529 000 000; +358.01% ‼️ 115 500 000 130 300 000 (98 500 000; 147 000 000) 58 000 000 396 000 000
tests::unstoppable_block_execution_works 100 000 000; +40.85% ❗ 71 000 000 80 650 000 (54 000 000; 87 500 000) 23 000 000 380 000 000
tests::unused_gas_released_back_works 95 000 000; +39.71% ❗ 68 000 000 75 900 000 (52 000 000; 88 000 000) 9 000 000 504 000 000
tests::wake_messages_after_program_inited 1 014 999 999; +371.00% ‼️ 215 500 000 233 350 000 (186 500 000; 254 500 000) 117 000 000 496 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 80 000 000; +75.82% ❗ 45 500 000 52 730 000 (28 500 000; 66 000 000) 6 000 000 224 000 000
tests::check_changed_pages_in_storage 89 000 000; +32.84% ❗ 67 000 000 77 820 000 (52 500 000; 88 000 000) 19 000 000 324 000 000
tests::debug_mode_works 75 000 000; -3.85% ✔️ 78 000 000 81 930 000 (56 000 000; 102 500 000) 23 000 000 258 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 101 000 000; +119.57% ❗ 46 000 000 50 710 000 (32 500 000; 59 000 000) 5 000 000 263 000 000
tests::dequeued_impl_works_manually 224 000 000; +307.27% ‼️ 55 000 000 61 430 000 (40 000 000; 75 500 000) 15 000 000 173 000 000
tests::queue_processing_impl_works_manually 188 000 000; +203.23% ❗ 62 000 000 64 900 000 (46 000 000; 75 000 000) 17 000 000 247 000 000
tests::queue_works 207 000 000; +260.00% ❗ 57 500 000 68 350 000 (41 000 000; 87 000 000) 7 000 000 343 000 000
tests::sent_impl_works 222 000 000; +311.11% ❗ 54 000 000 58 650 000 (39 000 000; 70 500 000) 9 000 000 225 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 198 000 000; +421.05% ❗ 38 000 000 47 860 000 (25 000 000; 55 500 000) 4 000 000 233 000 000
tests::custom_fee_multiplier_updated_per_block 262 000 000; +359.65% ‼️ 57 000 000 61 000 000 (45 000 000; 76 000 000) 20 000 000 224 000 000
tests::fee_rounding_error_bounded_by_multiplier 238 000 000; +317.54% ❗ 57 000 000 66 500 000 (44 500 000; 78 500 000) 14 000 000 295 000 000
tests::mq_size_affecting_fee_works 157 000 000; +175.44% ❗ 57 000 000 63 780 000 (41 000 000; 77 500 000) 9 000 000 281 000 000
tests::mq_size_not_affecting_fee_works 78 000 000; +32.20% ❗ 59 000 000 64 630 000 (45 500 000; 74 500 000) 20 000 000 272 000 000
tests::query_info_and_fee_details_work 120 000 000; +101.68% ❗ 59 500 000 67 540 000 (38 500 000; 83 000 000) 15 000 000 340 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 56 000 000; +33.33% ✔️ 42 000 000 50 160 000 (28 500 000; 61 500 000) 4 000 000 328 000 000
tests::pause_program_twice_fails 36 000 000; -40.98% ✔️ 61 000 000 67 840 000 (45 000 000; 75 500 000) 17 000 000 520 000 000
tests::pause_program_works 87 000 000; +31.82% ✔️ 66 000 000 74 440 000 (55 500 000; 87 500 000) 20 000 000 332 000 000
tests::pause_terminated_program_fails 149 000 000; +192.16% ❗ 51 000 000 59 990 000 (36 000 000; 68 500 000) 20 000 000 326 000 000
tests::pause_uninitialized_program_works 123 000 000; +69.66% ❗ 72 500 000 81 150 000 (54 000 000; 94 500 000) 19 000 000 256 000 000
tests::resume_program_twice_fails 166 000 000; +78.49% ❗ 93 000 000 103 280 000 (77 500 000; 122 500 000) 36 000 000 407 000 000
tests::resume_program_wrong_list_fails 119 000 000; +39.18% ❗ 85 500 000 91 170 000 (66 500 000; 101 000 000) 29 000 000 320 000 000
tests::resume_program_wrong_memory_fails 190 000 000; +133.13% ❗ 81 500 000 92 300 000 (63 000 000; 117 000 000) 24 000 000 247 000 000
tests::resume_uninitialized_program_works 130 000 000; +61.49% ❗ 80 500 000 91 260 000 (63 500 000; 108 500 000) 27 000 000 340 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 59 000 000; +34.09% ✔️ 44 000 000 50 800 000 (28 000 000; 63 000 000) 8 000 000 228 000 000
tests::dust_discarded_with_noop 68 000 000; +16.24% ✔️ 58 500 000 69 570 000 (40 500 000; 76 000 000) 17 000 000 428 000 000
tests::external_submitter_gets_rewarded 129 000 000; +138.89% ❗ 54 000 000 63 460 000 (43 000 000; 70 000 000) 13 000 000 284 000 000
tests::gas_properly_handled_for_trap_replies 53 000 000; -7.02% ✔️ 57 000 000 67 500 000 (46 000 000; 76 000 000) 21 000 000 358 000 000
tests::ocw_double_charge 57 000 000; +0.88% ✔️ 56 500 000 64 790 000 (39 500 000; 78 500 000) 18 000 000 304 000 000
tests::ocw_interval_maintained 56 000 000; -5.08% ✔️ 59 000 000 67 740 000 (41 500 000; 83 000 000) 15 000 000 328 000 000
tests::ocw_interval_stretches_for_large_wait_list 66 000 000; +26.92% ✔️ 52 000 000 59 200 000 (39 500 000; 69 000 000) 18 000 000 344 000 000
tests::ocw_overlapping_prevented 44 000 000; -19.27% ✔️ 54 500 000 61 410 000 (37 500 000; 73 000 000) 17 000 000 216 000 000
tests::rent_charge_works 110 000 000; +105.61% ❗ 53 500 000 61 830 000 (38 000 000; 75 500 000) 14 000 000 240 000 000
tests::trap_reply_message_is_sent 105 000 000; +94.44% ❗ 54 000 000 60 500 000 (41 000 000; 67 500 000) 13 000 000 332 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 249 542 723 046; +49.35% ‼️ 167 083 520 280 167 090 932 100 (166 519 408 878; 167 693 230 399) 164 918 265 680 169 349 884 756

name = Async RwLock

name current median average lower/upper quartile min max
check readers 328 577 258; +535.17% ‼️ 51 730 361 57 534 756 (43 010 249; 64 498 748) 32 610 656 124 175 995
forever lock 429 938 080; +463.00% ‼️ 76 366 226 83 640 052 (63 520 381; 97 849 223) 44 775 706 150 081 073
read while writing 939 706 425; +572.03% ‼️ 139 829 990 146 163 472 (113 985 532; 182 349 038) 76 595 752 246 672 265
rwlock wide 1 609 052 774; +455.03% ‼️ 289 901 911 294 024 000 (266 552 012; 316 112 673) 187 852 060 392 047 451
write while reading 1 137 615 998; +501.51% ‼️ 189 125 591 184 719 485 (160 328 905; 210 018 446) 112 836 374 256 215 786

name = Async init

name current median average lower/upper quartile min max
approved pong 19 691 031 073; +12.62% ‼️ 17 483 809 548 17 481 827 044 (17 339 948 779; 17 601 995 485) 17 082 004 817 18 068 059 002

name = Async-await

name current median average lower/upper quartile min max
normal 419 099 624; +400.56% ‼️ 83 725 887 82 810 393 (76 653 045; 91 288 270) 38 100 790 123 193 693
panic 318 178 063; +384.00% ‼️ 65 739 181 70 257 003 (52 468 174; 91 604 647) 31 127 746 113 904 060

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 785 317 432; +435.15% ‼️ 146 746 765 137 042 230 (106 057 820; 157 900 512) 61 373 083 187 830 686

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 17 300 980 415; +78.85% ‼️ 9 673 341 107 9 682 096 957 (9 563 335 248; 9 788 547 730) 9 289 325 799 10 130 215 681
2 of 3; bob & eve 17 095 650 159; +74.97% ‼️ 9 770 575 652 9 746 443 706 (9 622 848 565; 9 862 968 412) 9 278 407 744 10 155 941 315
2 of 3; eve & alice 17 529 075 314; +81.48% ‼️ 9 659 176 005 9 657 136 627 (9 516 576 856; 9 763 925 754) 9 358 873 198 10 041 649 136
2 of 3; eve doesn't answer, alice replies with incorrect payload 14 733 366 465; +53.81% ‼️ 9 578 730 505 9 564 145 239 (9 391 998 992; 9 718 189 288) 9 129 367 854 10 117 459 903
2 of 3; no replies 10 062 567 226; +7.28% ‼️ 9 380 067 714 9 374 766 350 (9 231 638 144; 9 502 138 836) 8 950 168 108 9 838 962 470
Single signatory & zero threshold 12 189 773 460; +26.89% ‼️ 9 606 390 156 9 598 071 106 (9 468 583 465; 9 708 082 488) 9 146 998 332 10 049 419 829
Three signatories & redundand threshold 17 497 918 450; +78.59% ‼️ 9 798 082 805 9 804 090 709 (9 692 384 040; 9 899 565 849) 9 384 986 480 10 166 542 816
Three signatories; Bob replies with incorrect signature 14 977 130 628; +56.69% ‼️ 9 558 401 587 9 548 843 743 (9 403 473 797; 9 706 347 582) 8 883 928 033 10 034 916 230
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 14 617 449 045; +53.39% ‼️ 9 529 492 822 9 548 084 887 (9 446 563 970; 9 652 122 498) 9 280 127 735 10 019 078 053

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 6 011 287 784; +17.91% ‼️ 5 098 178 293 5 079 435 034 (4 913 330 524; 5 234 351 915) 4 567 100 949 5 426 877 881
correct signature but for another message 6 992 794 556; +32.19% ‼️ 5 290 035 882 5 266 205 647 (5 154 150 013; 5 395 164 849) 4 811 775 923 5 599 110 537
no reply 5 421 338 632; +7.36% ‼️ 5 049 616 138 5 030 642 184 (4 879 230 624; 5 198 891 452) 4 472 949 938 5 418 741 894
signed message 6 920 574 263; +30.58% ‼️ 5 300 033 221 5 268 584 446 (5 130 536 445; 5 408 082 209) 4 773 411 617 5 610 844 733

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 488 673 817; +394.92% ‼️ 98 737 172 96 765 085 (89 138 198; 105 590 836) 55 538 260 136 035 491

name = Decoder

name current median average lower/upper quartile min max
decoder 352 108 901; +421.75% ‼️ 67 486 051 60 137 450 (38 550 732; 78 655 779) 20 451 703 106 150 527

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 149 423 513; +474.47% ‼️ 374 157 879 364 558 047 (311 470 185; 423 430 826) 220 215 705 500 070 518
join 1 550 128 279; +459.11% ‼️ 277 247 526 294 628 943 (240 187 141; 349 268 625) 166 984 724 482 156 676
select 1 484 559 823; +400.53% ‼️ 296 597 472 306 285 307 (238 840 097; 357 323 682) 161 688 498 489 292 200

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 767 679 859; +494.46% ‼️ 297 361 077 289 664 824 (245 623 010; 331 869 485) 155 092 986 421 208 889

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 315 485 192; +217.46% ‼️ 99 379 454 96 950 556 (86 903 344; 106 477 601) 52 701 656 143 545 579

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 215 356 216; +144.74% ‼️ 87 993 489 80 065 483 (49 494 045; 102 020 681) 21 889 675 152 105 982

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 17 591 614 158; +7.09% ‼️ 16 427 632 613 16 433 928 299 (16 264 556 316; 16 546 269 912) 15 983 357 285 17 036 150 144

name = Multiping

name current median average lower/upper quartile min max
multiping 420 861 038; +468.72% ‼️ 74 001 849 67 046 900 (52 224 237; 80 334 945) 26 460 155 93 591 898

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 170 832 924; +336.85% ‼️ 39 105 361 44 965 531 (29 904 590; 63 828 092) 17 462 790 81 271 310
ping-pong wgas 281 012 141; +437.70% ‼️ 52 262 334 56 876 059 (44 136 713; 62 879 865) 29 260 257 103 333 172

name = Program_id test

name current median average lower/upper quartile min max
program_id 235 179 647; +254.66% ‼️ 66 310 955 63 626 890 (59 103 721; 70 081 496) 32 653 600 78 873 084

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 500 380 984; +722.29% ‼️ 60 851 982 69 377 283 (49 962 083; 92 808 705) 36 252 767 102 220 170
state-saving 494 929 743; +851.45% ‼️ 52 018 409 57 768 035 (44 126 071; 61 903 900) 32 796 322 121 431 001

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 329 335 292; +339.64% ‼️ 74 910 102 73 000 931 (67 428 058; 81 869 081) 30 114 485 104 560 809
Try to re-init existing program 545 117 344; +495.94% ‼️ 91 472 265 89 175 075 (71 041 618; 107 376 862) 45 856 112 130 212 562

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 160 633 449; +598.61% ‼️ 22 993 192 30 141 048 (18 197 122; 48 225 566) 11 773 117 59 581 989

name = Wait test

name current median average lower/upper quartile min max
wait 394 142 458; +423.97% ‼️ 75 222 612 81 866 807 (62 660 912; 104 423 289) 40 103 627 136 502 980

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 901 679 746; +173.85% ‼️ 329 263 475 330 436 059 (301 941 878; 357 018 322) 188 568 051 457 258 897

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 518 655 161; +402.93% ‼️ 103 126 168 102 924 131 (96 321 408; 111 332 439) 68 714 886 136 424 561

name = guestbook test

name current median average lower/upper quartile min max
guestbook 9 652 969 369; +4.16% ❗ 9 267 619 209 9 256 520 926 (9 081 609 099; 9 402 447 947) 8 739 777 178 9 702 941 681

name = gui test

name current median average lower/upper quartile min max
gui 13 235 516 674; +12.22% ‼️ 11 794 609 734 11 792 062 791 (11 653 889 709; 11 900 306 732) 11 429 922 317 12 308 348 298
2ac415b
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 153 941 000 000; +5896.92% ‼️ 2 567 000 000 4 537 890 000 (2 519 000 000; 2 749 500 000) 2 453 000 000 126 968 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 54 000 000; +116.00% ❗ 25 000 000 36 190 000 (20 000 000; 36 000 000) 5 000 000 265 000 000
tests::all_keys_are_cleared 35 000 000; -7.89% ✔️ 38 000 000 52 840 000 (29 000 000; 50 500 000) 11 000 000 266 000 000
tests::gas_free_after_consumed 30 000 000; -23.08% ✔️ 39 000 000 55 190 000 (28 000 000; 55 500 000) 10 000 000 396 000 000
tests::limit_vs_origin 28 000 000; -31.71% ✔️ 41 000 000 57 000 000 (32 000 000; 55 000 000) 10 000 000 282 000 000
tests::long_chain 149 000 000; +272.50% ❗ 40 000 000 52 210 000 (28 500 000; 58 000 000) 9 000 000 272 000 000
tests::simple_value_tree 36 000 000; +0.00% ✔️ 36 000 000 48 300 000 (27 000 000; 52 000 000) 9 000 000 373 000 000
tests::split_with_no_value 36 000 000; -11.11% ✔️ 40 500 000 50 240 000 (28 000 000; 52 000 000) 14 000 000 260 000 000
tests::sub_nodes_tree 34 000 000; -11.69% ✔️ 38 500 000 49 090 000 (28 000 000; 52 500 000) 10 000 000 304 000 000
tests::sub_nodes_tree_with_spends 94 000 000; +150.67% ❗ 37 500 000 53 420 000 (26 000 000; 55 500 000) 5 000 000 325 000 000
tests::subtree_gas_limit_remains_intact 27 000 000; -22.86% ✔️ 35 000 000 46 240 000 (27 000 000; 52 000 000) 10 000 000 210 000 000
tests::value_tree_known_errors 35 000 000; -9.09% ✔️ 38 500 000 49 280 000 (26 500 000; 55 000 000) 14 000 000 296 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 18 000 000; -35.71% ✔️ 28 000 000 37 630 000 (18 500 000; 40 500 000) 5 000 000 260 000 000
schedule::test::print_test_schedule 24 000 000; -22.58% ✔️ 31 000 000 37 240 000 (23 000 000; 41 000 000) 10 000 000 221 000 000
tests::block_gas_limit_works 75 000 000; +47.06% ❗ 51 000 000 65 850 000 (38 500 000; 74 000 000) 19 000 000 253 000 000
tests::call_forbidden_function 57 000 000; +22.58% ✔️ 46 500 000 56 360 000 (34 500 000; 60 500 000) 20 000 000 289 000 000
tests::cascading_messages_with_value_do_not_overcharge 248 000 000; +5.08% ✔️ 236 000 000 309 350 000 (211 000 000; 321 500 000) 168 000 000 1 244 000 000
tests::claim_value_from_mailbox_works 25 000 000; -50.98% ✔️ 51 000 000 63 550 000 (41 500 000; 73 500 000) 18 000 000 332 000 000
tests::defer_program_initialization 126 000 000; +19.43% ✔️ 105 500 000 126 990 000 (78 500 000; 151 500 000) 59 000 000 416 000 000
tests::distributor_distribute 96 000 000; -6.34% ✔️ 102 500 000 113 910 000 (78 000 000; 131 000 000) 54 000 000 324 000 000
tests::distributor_initialize 80 000 000; -3.61% ✔️ 83 000 000 97 760 000 (66 000 000; 112 000 000) 35 000 000 406 000 000
tests::events_logging_works 27 000 000; -55.37% ✔️ 60 500 000 69 550 000 (42 000 000; 83 500 000) 15 000 000 264 000 000
tests::exit_handle 35 000 000; -43.09% ✔️ 61 500 000 70 830 000 (40 500 000; 83 000 000) 17 000 000 276 000 000
tests::exit_init 64 000 000; -21.95% ✔️ 82 000 000 91 930 000 (64 500 000; 103 500 000) 36 000 000 376 000 000
tests::gas_spent_precalculated 46 000 000; -24.59% ✔️ 61 000 000 73 580 000 (50 000 000; 86 500 000) 27 000 000 331 000 000
tests::gas_spent_vs_balance 196 000 000; +59.35% ❗ 123 000 000 142 220 000 (99 500 000; 151 500 000) 63 000 000 713 000 000
tests::init_message_logging_works 71 000 000; +7.58% ✔️ 66 000 000 76 090 000 (47 000 000; 87 000 000) 23 000 000 336 000 000
tests::init_wait_reply_exit_cleaned_storage 77 000 000; -35.83% ✔️ 120 000 000 134 350 000 (93 000 000; 150 500 000) 68 000 000 389 000 000
tests::lazy_pages 114 000 000; +71.43% ❗ 66 500 000 78 490 000 (52 000 000; 89 500 000) 19 000 000 244 000 000
tests::mailbox_works 89 000 000; +43.55% ❗ 62 000 000 71 070 000 (50 000 000; 81 000 000) 16 000 000 364 000 000
tests::memory_access_cases 89 000 000; +36.92% ❗ 65 000 000 71 120 000 (49 000 000; 83 000 000) 21 000 000 272 000 000
tests::messages_processing_works 51 000 000; -17.74% ✔️ 62 000 000 68 380 000 (51 000 000; 83 500 000) 17 000 000 174 000 000
tests::messages_to_paused_program_skipped 260 000 000; +222.98% ❗ 80 500 000 94 530 000 (57 500 000; 108 500 000) 27 000 000 359 000 000
tests::messages_to_uninitialized_program_wait 223 000 000; +159.30% ❗ 86 000 000 92 220 000 (65 500 000; 114 000 000) 29 000 000 304 000 000
tests::no_redundant_gas_value_after_exiting 268 000 000; +303.01% ‼️ 66 500 000 70 910 000 (47 000 000; 85 500 000) 18 000 000 174 000 000
tests::paused_program_keeps_id 312 000 000; +271.43% ‼️ 84 000 000 96 110 000 (65 500 000; 110 500 000) 36 000 000 300 000 000
tests::program_lifecycle_works 204 000 000; +216.28% ❗ 64 500 000 73 530 000 (48 500 000; 88 500 000) 18 000 000 267 000 000
tests::program_messages_to_paused_program_skipped 194 000 000; +54.58% ❗ 125 500 000 146 230 000 (108 000 000; 159 500 000) 60 000 000 484 000 000
tests::replies_to_paused_program_skipped 221 000 000; +181.53% ❗ 78 500 000 91 350 000 (59 500 000; 109 500 000) 28 000 000 368 000 000
tests::restrict_start_section 110 000 000; +78.86% ❗ 61 500 000 67 380 000 (43 500 000; 76 000 000) 24 000 000 420 000 000
tests::resume_program_works 380 000 000; +229.00% ❗ 115 500 000 138 570 000 (96 000 000; 157 000 000) 58 000 000 440 000 000
tests::send_message_expected_failure 217 000 000; +270.94% ❗ 58 500 000 76 010 000 (45 000 000; 81 500 000) 22 000 000 428 000 000
tests::send_message_works 209 000 000; +229.13% ❗ 63 500 000 74 490 000 (48 500 000; 83 000 000) 16 000 000 440 000 000
tests::send_reply_failure_to_claim_from_mailbox 424 000 000; +595.08% ❗ 61 000 000 72 770 000 (44 500 000; 86 000 000) 26 000 000 452 000 000
tests::send_reply_value_claiming_works 44 000 000; -32.82% ✔️ 65 500 000 75 560 000 (43 500 000; 86 000 000) 18 000 000 280 000 000
tests::send_reply_works 47 000 000; -18.26% ✔️ 57 500 000 74 190 000 (47 000 000; 80 000 000) 17 000 000 416 000 000
tests::spent_gas_to_reward_block_author_works 44 000 000; -26.67% ✔️ 60 000 000 64 210 000 (45 000 000; 76 000 000) 22 000 000 228 000 000
tests::submit_program_expected_failure 245 000 000; +333.63% ❗ 56 500 000 69 400 000 (42 000 000; 76 500 000) 18 000 000 560 000 000
tests::submit_program_fails_on_duplicate_id 271 000 000; +363.25% ❗ 58 500 000 69 330 000 (43 500 000; 76 500 000) 17 000 000 544 000 000
tests::test_code_is_not_reset_within_program_submission 261 000 000; +317.60% ❗ 62 500 000 70 150 000 (44 000 000; 83 000 000) 21 000 000 540 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 248 000 000; +303.25% ❗ 61 500 000 71 260 000 (43 000 000; 76 500 000) 19 000 000 372 000 000
tests::test_code_submission_pass 164 000 000; +185.22% ❗ 57 500 000 69 940 000 (39 500 000; 82 500 000) 16 000 000 508 000 000
tests::test_create_program_duplicate 259 000 000; +81.12% ❗ 143 000 000 155 750 000 (118 500 000; 173 500 000) 71 000 000 540 000 000
tests::test_create_program_duplicate_in_one_execution 371 000 000; +288.48% ❗ 95 500 000 113 790 000 (76 500 000; 124 500 000) 42 000 000 529 000 000
tests::test_create_program_miscellaneous 656 000 000; +337.33% ‼️ 150 000 000 170 550 000 (123 500 000; 189 000 000) 74 000 000 614 000 000
tests::test_create_program_no_code_hash 931 000 000; +235.50% ‼️ 277 500 000 299 860 000 (234 500 000; 341 500 000) 173 000 000 632 000 000
tests::test_create_program_simple 533 000 000; +234.17% ‼️ 159 500 000 178 610 000 (133 500 000; 201 500 000) 87 000 000 480 000 000
tests::test_create_program_with_exceeding_value 121 000 000; +51.25% ❗ 80 000 000 90 200 000 (61 500 000; 109 500 000) 27 000 000 336 000 000
tests::test_create_program_with_value_lt_ed 401 000 000; +278.30% ❗ 106 000 000 125 410 000 (89 000 000; 132 000 000) 50 000 000 700 000 000
tests::test_create_program_without_gas_works 83 000 000; +1.84% ✔️ 81 500 000 90 680 000 (57 500 000; 104 000 000) 26 000 000 408 000 000
tests::test_message_processing_for_non_existing_destination 137 000 000; +120.97% ❗ 62 000 000 72 370 000 (48 000 000; 79 500 000) 26 000 000 323 000 000
tests::test_reply_to_terminated_program 160 000 000; +92.77% ❗ 83 000 000 95 180 000 (64 000 000; 104 500 000) 24 000 000 481 000 000
tests::test_same_code_submission_fails 182 000 000; +182.17% ❗ 64 500 000 76 020 000 (54 000 000; 81 500 000) 15 000 000 320 000 000
tests::test_two_contracts_composition_works 645 000 000; +184.77% ❗ 226 500 000 255 140 000 (193 000 000; 279 000 000) 136 000 000 753 000 000
tests::uninitialized_program_should_accept_replies 523 000 000; +352.81% ‼️ 115 500 000 130 300 000 (98 500 000; 147 000 000) 58 000 000 396 000 000
tests::unstoppable_block_execution_works 319 000 000; +349.30% ❗ 71 000 000 80 650 000 (54 000 000; 87 500 000) 23 000 000 380 000 000
tests::unused_gas_released_back_works 132 000 000; +94.12% ❗ 68 000 000 75 900 000 (52 000 000; 88 000 000) 9 000 000 504 000 000
tests::wake_messages_after_program_inited 900 000 000; +317.63% ‼️ 215 500 000 233 350 000 (186 500 000; 254 500 000) 117 000 000 496 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 121 000 000; +165.93% ❗ 45 500 000 52 730 000 (28 500 000; 66 000 000) 6 000 000 224 000 000
tests::check_changed_pages_in_storage 172 000 000; +156.72% ❗ 67 000 000 77 820 000 (52 500 000; 88 000 000) 19 000 000 324 000 000
tests::debug_mode_works 227 000 000; +191.03% ❗ 78 000 000 81 930 000 (56 000 000; 102 500 000) 23 000 000 258 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 239 000 000; +419.57% ❗ 46 000 000 50 710 000 (32 500 000; 59 000 000) 5 000 000 263 000 000
tests::dequeued_impl_works_manually 380 000 000; +590.91% ‼️ 55 000 000 61 430 000 (40 000 000; 75 500 000) 15 000 000 173 000 000
tests::queue_processing_impl_works_manually 116 000 000; +87.10% ❗ 62 000 000 64 900 000 (46 000 000; 75 000 000) 17 000 000 247 000 000
tests::queue_works 202 000 000; +251.30% ❗ 57 500 000 68 350 000 (41 000 000; 87 000 000) 7 000 000 343 000 000
tests::sent_impl_works 93 000 000; +72.22% ❗ 54 000 000 58 650 000 (39 000 000; 70 500 000) 9 000 000 225 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 89 000 000; +134.21% ❗ 38 000 000 47 860 000 (25 000 000; 55 500 000) 4 000 000 233 000 000
tests::custom_fee_multiplier_updated_per_block 89 000 000; +56.14% ❗ 57 000 000 61 000 000 (45 000 000; 76 000 000) 20 000 000 224 000 000
tests::fee_rounding_error_bounded_by_multiplier 101 000 000; +77.19% ❗ 57 000 000 66 500 000 (44 500 000; 78 500 000) 14 000 000 295 000 000
tests::mq_size_affecting_fee_works 157 000 000; +175.44% ❗ 57 000 000 63 780 000 (41 000 000; 77 500 000) 9 000 000 281 000 000
tests::mq_size_not_affecting_fee_works 160 000 000; +171.19% ❗ 59 000 000 64 630 000 (45 500 000; 74 500 000) 20 000 000 272 000 000
tests::query_info_and_fee_details_work 154 000 000; +158.82% ❗ 59 500 000 67 540 000 (38 500 000; 83 000 000) 15 000 000 340 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 135 000 000; +221.43% ❗ 42 000 000 50 160 000 (28 500 000; 61 500 000) 4 000 000 328 000 000
tests::pause_program_twice_fails 152 000 000; +149.18% ❗ 61 000 000 67 840 000 (45 000 000; 75 500 000) 17 000 000 520 000 000
tests::pause_program_works 155 000 000; +134.85% ❗ 66 000 000 74 440 000 (55 500 000; 87 500 000) 20 000 000 332 000 000
tests::pause_terminated_program_fails 112 000 000; +119.61% ❗ 51 000 000 59 990 000 (36 000 000; 68 500 000) 20 000 000 326 000 000
tests::pause_uninitialized_program_works 189 000 000; +160.69% ❗ 72 500 000 81 150 000 (54 000 000; 94 500 000) 19 000 000 256 000 000
tests::resume_program_twice_fails 183 000 000; +96.77% ❗ 93 000 000 103 280 000 (77 500 000; 122 500 000) 36 000 000 407 000 000
tests::resume_program_wrong_list_fails 163 000 000; +90.64% ❗ 85 500 000 91 170 000 (66 500 000; 101 000 000) 29 000 000 320 000 000
tests::resume_program_wrong_memory_fails 130 000 000; +59.51% ❗ 81 500 000 92 300 000 (63 000 000; 117 000 000) 24 000 000 247 000 000
tests::resume_uninitialized_program_works 118 000 000; +46.58% ❗ 80 500 000 91 260 000 (63 500 000; 108 500 000) 27 000 000 340 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 59 000 000; +34.09% ✔️ 44 000 000 50 800 000 (28 000 000; 63 000 000) 8 000 000 228 000 000
tests::dust_discarded_with_noop 144 000 000; +146.15% ❗ 58 500 000 69 570 000 (40 500 000; 76 000 000) 17 000 000 428 000 000
tests::external_submitter_gets_rewarded 54 000 000; +0.00% ✔️ 54 000 000 63 460 000 (43 000 000; 70 000 000) 13 000 000 284 000 000
tests::gas_properly_handled_for_trap_replies 92 000 000; +61.40% ❗ 57 000 000 67 500 000 (46 000 000; 76 000 000) 21 000 000 358 000 000
tests::ocw_double_charge 160 000 000; +183.19% ❗ 56 500 000 64 790 000 (39 500 000; 78 500 000) 18 000 000 304 000 000
tests::ocw_interval_maintained 80 000 000; +35.59% ✔️ 59 000 000 67 740 000 (41 500 000; 83 000 000) 15 000 000 328 000 000
tests::ocw_interval_stretches_for_large_wait_list 157 000 000; +201.92% ❗ 52 000 000 59 200 000 (39 500 000; 69 000 000) 18 000 000 344 000 000
tests::ocw_overlapping_prevented 110 000 000; +101.83% ❗ 54 500 000 61 410 000 (37 500 000; 73 000 000) 17 000 000 216 000 000
tests::rent_charge_works 165 000 000; +208.41% ❗ 53 500 000 61 830 000 (38 000 000; 75 500 000) 14 000 000 240 000 000
tests::trap_reply_message_is_sent 189 000 000; +250.00% ❗ 54 000 000 60 500 000 (41 000 000; 67 500 000) 13 000 000 332 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 635 911 568 521; +280.60% ‼️ 167 083 520 280 167 090 932 100 (166 519 408 878; 167 693 230 399) 164 918 265 680 169 349 884 756

name = Async RwLock

name current median average lower/upper quartile min max
check readers 707 011 099; +1266.72% ‼️ 51 730 361 57 534 756 (43 010 249; 64 498 748) 32 610 656 124 175 995
forever lock 3 520 042 563; +4509.42% ‼️ 76 366 226 83 640 052 (63 520 381; 97 849 223) 44 775 706 150 081 073
read while writing 5 973 060 976; +4171.66% ‼️ 139 829 990 146 163 472 (113 985 532; 182 349 038) 76 595 752 246 672 265
rwlock wide 10 133 662 749; +3395.55% ‼️ 289 901 911 294 024 000 (266 552 012; 316 112 673) 187 852 060 392 047 451
write while reading 2 820 110 817; +1391.13% ‼️ 189 125 591 184 719 485 (160 328 905; 210 018 446) 112 836 374 256 215 786

name = Async init

name current median average lower/upper quartile min max
approved pong 36 671 356 256; +109.74% ‼️ 17 483 809 548 17 481 827 044 (17 339 948 779; 17 601 995 485) 17 082 004 817 18 068 059 002

name = Async-await

name current median average lower/upper quartile min max
normal 4 640 811 182; +5442.86% ‼️ 83 725 887 82 810 393 (76 653 045; 91 288 270) 38 100 790 123 193 693
panic 5 162 360 714; +7752.79% ‼️ 65 739 181 70 257 003 (52 468 174; 91 604 647) 31 127 746 113 904 060

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 7 963 768 574; +5326.88% ‼️ 146 746 765 137 042 230 (106 057 820; 157 900 512) 61 373 083 187 830 686

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 29 927 271 746; +209.38% ‼️ 9 673 341 107 9 682 096 957 (9 563 335 248; 9 788 547 730) 9 289 325 799 10 130 215 681
2 of 3; bob & eve 30 047 435 549; +207.53% ‼️ 9 770 575 652 9 746 443 706 (9 622 848 565; 9 862 968 412) 9 278 407 744 10 155 941 315
2 of 3; eve & alice 29 671 657 267; +207.19% ‼️ 9 659 176 005 9 657 136 627 (9 516 576 856; 9 763 925 754) 9 358 873 198 10 041 649 136
2 of 3; eve doesn't answer, alice replies with incorrect payload 26 199 946 878; +173.52% ‼️ 9 578 730 505 9 564 145 239 (9 391 998 992; 9 718 189 288) 9 129 367 854 10 117 459 903
2 of 3; no replies 18 177 146 717; +93.78% ‼️ 9 380 067 714 9 374 766 350 (9 231 638 144; 9 502 138 836) 8 950 168 108 9 838 962 470
Single signatory & zero threshold 31 162 161 581; +224.39% ‼️ 9 606 390 156 9 598 071 106 (9 468 583 465; 9 708 082 488) 9 146 998 332 10 049 419 829
Three signatories & redundand threshold 28 198 661 835; +187.80% ‼️ 9 798 082 805 9 804 090 709 (9 692 384 040; 9 899 565 849) 9 384 986 480 10 166 542 816
Three signatories; Bob replies with incorrect signature 20 975 754 992; +119.45% ‼️ 9 558 401 587 9 548 843 743 (9 403 473 797; 9 706 347 582) 8 883 928 033 10 034 916 230
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 22 158 081 154; +132.52% ‼️ 9 529 492 822 9 548 084 887 (9 446 563 970; 9 652 122 498) 9 280 127 735 10 019 078 053

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 13 392 151 980; +162.69% ‼️ 5 098 178 293 5 079 435 034 (4 913 330 524; 5 234 351 915) 4 567 100 949 5 426 877 881
correct signature but for another message 14 060 010 135; +165.78% ‼️ 5 290 035 882 5 266 205 647 (5 154 150 013; 5 395 164 849) 4 811 775 923 5 599 110 537
no reply 12 656 694 573; +150.65% ‼️ 5 049 616 138 5 030 642 184 (4 879 230 624; 5 198 891 452) 4 472 949 938 5 418 741 894
signed message 21 251 321 848; +300.97% ‼️ 5 300 033 221 5 268 584 446 (5 130 536 445; 5 408 082 209) 4 773 411 617 5 610 844 733

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 4 784 257 982; +4745.45% ‼️ 98 737 172 96 765 085 (89 138 198; 105 590 836) 55 538 260 136 035 491

name = Decoder

name current median average lower/upper quartile min max
decoder 5 288 611 918; +7736.60% ‼️ 67 486 051 60 137 450 (38 550 732; 78 655 779) 20 451 703 106 150 527

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 12 522 428 391; +3246.83% ‼️ 374 157 879 364 558 047 (311 470 185; 423 430 826) 220 215 705 500 070 518
join 7 791 116 359; +2710.17% ‼️ 277 247 526 294 628 943 (240 187 141; 349 268 625) 166 984 724 482 156 676
select 8 005 259 673; +2599.03% ‼️ 296 597 472 306 285 307 (238 840 097; 357 323 682) 161 688 498 489 292 200

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 11 958 798 908; +3921.64% ‼️ 297 361 077 289 664 824 (245 623 010; 331 869 485) 155 092 986 421 208 889

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 4 904 961 391; +4835.59% ‼️ 99 379 454 96 950 556 (86 903 344; 106 477 601) 52 701 656 143 545 579

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 6 944 186 145; +7791.70% ‼️ 87 993 489 80 065 483 (49 494 045; 102 020 681) 21 889 675 152 105 982

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 36 273 182 784; +120.81% ‼️ 16 427 632 613 16 433 928 299 (16 264 556 316; 16 546 269 912) 15 983 357 285 17 036 150 144

name = Multiping

name current median average lower/upper quartile min max
multiping 4 708 544 340; +6262.74% ‼️ 74 001 849 67 046 900 (52 224 237; 80 334 945) 26 460 155 93 591 898

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 5 875 490 719; +14924.77% ‼️ 39 105 361 44 965 531 (29 904 590; 63 828 092) 17 462 790 81 271 310
ping-pong wgas 5 511 713 255; +10446.24% ‼️ 52 262 334 56 876 059 (44 136 713; 62 879 865) 29 260 257 103 333 172

name = Program_id test

name current median average lower/upper quartile min max
program_id 4 198 326 189; +6231.27% ‼️ 66 310 955 63 626 890 (59 103 721; 70 081 496) 32 653 600 78 873 084

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 812 587 216; +1235.35% ‼️ 60 851 982 69 377 283 (49 962 083; 92 808 705) 36 252 767 102 220 170
state-saving 696 537 829; +1239.02% ‼️ 52 018 409 57 768 035 (44 126 071; 61 903 900) 32 796 322 121 431 001

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 5 323 939 624; +7007.11% ‼️ 74 910 102 73 000 931 (67 428 058; 81 869 081) 30 114 485 104 560 809
Try to re-init existing program 719 412 015; +686.48% ‼️ 91 472 265 89 175 075 (71 041 618; 107 376 862) 45 856 112 130 212 562

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 3 373 977 228; +14573.81% ‼️ 22 993 192 30 141 048 (18 197 122; 48 225 566) 11 773 117 59 581 989

name = Wait test

name current median average lower/upper quartile min max
wait 4 949 350 838; +6479.61% ‼️ 75 222 612 81 866 807 (62 660 912; 104 423 289) 40 103 627 136 502 980

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 12 582 576 451; +3721.43% ‼️ 329 263 475 330 436 059 (301 941 878; 357 018 322) 188 568 051 457 258 897

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 6 230 919 893; +5942.04% ‼️ 103 126 168 102 924 131 (96 321 408; 111 332 439) 68 714 886 136 424 561

name = guestbook test

name current median average lower/upper quartile min max
guestbook 23 573 388 978; +154.36% ‼️ 9 267 619 209 9 256 520 926 (9 081 609 099; 9 402 447 947) 8 739 777 178 9 702 941 681

name = gui test

name current median average lower/upper quartile min max
gui 30 943 066 736; +162.35% ‼️ 11 794 609 734 11 792 062 791 (11 653 889 709; 11 900 306 732) 11 429 922 317 12 308 348 298
7f6bc03
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 95 377 000 000; +3581.80% ❗ 2 590 500 000 6 942 279 999 (2 495 500 000; 3 974 000 000) 2 385 000 000 309 920 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 38 000 000; +40.74% ❗ 27 000 000 51 490 000 (21 500 000; 37 000 000) 6 000 000 471 000 000
tests::all_keys_are_cleared 36 000 000; -7.69% ✔️ 39 000 000 61 960 000 (31 000 000; 52 500 000) 16 000 000 472 000 000
tests::gas_free_after_consumed 40 000 000; +5.26% ✔️ 38 000 000 59 260 000 (30 000 000; 55 500 000) 13 000 000 332 000 000
tests::limit_vs_origin 25 000 000; -34.21% ✔️ 38 000 000 59 740 000 (27 000 000; 60 500 000) 12 000 000 291 000 000
tests::long_chain 19 000 000; -52.50% ✔️ 40 000 000 61 420 000 (27 500 000; 56 000 000) 14 000 000 329 000 000
tests::simple_value_tree 23 000 000; -34.29% ✔️ 35 000 000 60 620 000 (26 500 000; 51 500 000) 9 000 000 480 000 000
tests::split_with_no_value 90 000 000; +130.77% ❗ 39 000 000 52 780 000 (29 000 000; 57 000 000) 12 000 000 244 000 000
tests::sub_nodes_tree 30 000 000; -22.08% ✔️ 38 500 000 53 290 000 (28 000 000; 59 500 000) 12 000 000 278 000 000
tests::sub_nodes_tree_with_spends 38 000 000; -2.56% ✔️ 39 000 000 53 860 000 (29 000 000; 54 500 000) 10 000 000 320 000 000
tests::subtree_gas_limit_remains_intact 24 000 000; -37.66% ✔️ 38 500 000 57 470 000 (27 500 000; 59 000 000) 12 000 000 324 000 000
tests::value_tree_known_errors 30 000 000; -23.08% ✔️ 39 000 000 51 090 000 (28 000 000; 55 000 000) 12 000 000 301 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 16 000 000; -47.54% ✔️ 30 500 000 38 330 000 (20 000 000; 43 000 000) 7 000 000 208 000 000
schedule::test::print_test_schedule 18 000 000; -33.33% ✔️ 27 000 000 40 020 000 (17 500 000; 43 500 000) 7 000 000 351 000 000
tests::block_gas_limit_works 50 000 000; -2.91% ✔️ 51 500 000 72 290 000 (38 500 000; 84 500 000) 20 000 000 433 000 000
tests::call_forbidden_function 45 000 000; +3.45% ✔️ 43 500 000 57 010 000 (31 000 000; 67 000 000) 13 000 000 248 000 000
tests::cascading_messages_with_value_do_not_overcharge 429 000 000; +55.15% ❗ 276 500 000 361 310 000 (218 000 000; 341 500 000) 153 000 000 1 641 000 000
tests::claim_value_from_mailbox_works 25 000 000; -47.37% ✔️ 47 500 000 67 040 000 (37 000 000; 75 500 000) 16 000 000 357 000 000
tests::defer_program_initialization 87 000 000; -23.01% ✔️ 113 000 000 145 690 000 (85 500 000; 156 500 000) 61 000 000 649 000 000
tests::distributor_distribute 88 000 000; -16.98% ✔️ 106 000 000 123 690 000 (79 000 000; 134 500 000) 46 000 000 372 000 000
tests::distributor_initialize 86 000 000; +0.58% ✔️ 85 500 000 109 300 000 (63 000 000; 122 500 000) 33 000 000 480 000 000
tests::events_logging_works 48 000 000; -17.24% ✔️ 58 000 000 80 960 000 (44 500 000; 78 000 000) 25 000 000 415 000 000
tests::exit_handle 36 000 000; -43.31% ✔️ 63 500 000 75 920 000 (44 000 000; 87 000 000) 13 000 000 263 000 000
tests::exit_init 85 000 000; +11.11% ✔️ 76 500 000 96 720 000 (59 000 000; 116 500 000) 26 000 000 356 000 000
tests::gas_spent_precalculated 52 000 000; -12.61% ✔️ 59 500 000 80 640 000 (43 000 000; 98 000 000) 19 000 000 395 000 000
tests::gas_spent_vs_balance 164 000 000; +28.12% ✔️ 128 000 000 156 580 000 (105 500 000; 166 000 000) 48 000 000 608 000 000
tests::init_message_logging_works 146 000 000; +121.21% ❗ 66 000 000 81 810 000 (44 500 000; 94 500 000) 21 000 000 325 000 000
tests::init_wait_reply_exit_cleaned_storage 455 000 000; +269.92% ❗ 123 000 000 158 000 000 (96 500 000; 161 000 000) 65 000 000 1 324 000 000
tests::lazy_pages 85 000 000; +24.09% ✔️ 68 500 000 82 930 000 (45 000 000; 95 000 000) 25 000 000 368 000 000
tests::mailbox_works 182 000 000; +145.95% ❗ 74 000 000 92 580 000 (57 500 000; 102 000 000) 17 000 000 408 000 000
tests::memory_access_cases 185 000 000; +153.42% ❗ 73 000 000 88 680 000 (53 000 000; 99 000 000) 23 000 000 391 000 000
tests::messages_processing_works 227 000 000; +238.81% ❗ 67 000 000 84 080 000 (49 000 000; 101 000 000) 19 000 000 296 000 000
tests::messages_to_paused_program_skipped 251 000 000; +204.24% ❗ 82 500 000 100 200 000 (62 500 000; 106 500 000) 23 000 000 432 000 000
tests::messages_to_uninitialized_program_wait 160 000 000; +88.24% ❗ 85 000 000 98 440 000 (62 000 000; 113 500 000) 40 000 000 385 000 000
tests::no_redundant_gas_value_after_exiting 140 000 000; +122.22% ❗ 63 000 000 80 290 000 (50 000 000; 87 000 000) 21 000 000 394 000 000
tests::paused_program_keeps_id 111 000 000; +20.65% ✔️ 92 000 000 107 540 000 (65 500 000; 123 000 000) 36 000 000 648 000 000
tests::program_lifecycle_works 88 000 000; +36.43% ✔️ 64 500 000 83 660 000 (46 000 000; 91 500 000) 15 000 000 355 000 000
tests::program_messages_to_paused_program_skipped 384 000 000; +200.00% ❗ 128 000 000 169 850 000 (99 000 000; 172 000 000) 50 000 000 804 000 000
tests::replies_to_paused_program_skipped 62 000 000; -26.19% ✔️ 84 000 000 98 500 000 (62 000 000; 107 000 000) 27 000 000 354 000 000
tests::restrict_start_section 289 000 000; +402.61% ❗ 57 500 000 76 740 000 (47 000 000; 86 000 000) 17 000 000 345 000 000
tests::resume_program_works 769 000 000; +484.79% ❗ 131 500 000 152 620 000 (98 000 000; 165 500 000) 63 000 000 822 000 000
tests::send_message_expected_failure 208 000 000; +246.67% ❗ 60 000 000 77 300 000 (43 500 000; 88 500 000) 14 000 000 288 000 000
tests::send_message_works 226 000 000; +255.91% ❗ 63 500 000 76 800 000 (48 000 000; 84 000 000) 24 000 000 253 000 000
tests::send_reply_failure_to_claim_from_mailbox 230 000 000; +226.24% ❗ 70 500 000 84 390 000 (44 000 000; 103 500 000) 16 000 000 482 000 000
tests::send_reply_value_claiming_works 319 000 000; +436.13% ❗ 59 500 000 80 880 000 (48 000 000; 91 500 000) 22 000 000 468 000 000
tests::send_reply_works 300 000 000; +361.54% ‼️ 65 000 000 73 350 000 (41 000 000; 90 000 000) 23 000 000 272 000 000
tests::spent_gas_to_reward_block_author_works 204 000 000; +242.86% ❗ 59 500 000 73 910 000 (43 500 000; 84 000 000) 14 000 000 288 000 000
tests::submit_program_expected_failure 106 000 000; +70.97% ❗ 62 000 000 71 900 000 (40 500 000; 84 500 000) 16 000 000 458 000 000
tests::submit_program_fails_on_duplicate_id 206 000 000; +249.15% ❗ 59 000 000 71 590 000 (42 000 000; 90 000 000) 16 000 000 229 000 000
tests::test_async_messages 2 003 000 000; +219.97% ❗ 626 000 000 800 900 000 (575 500 000; 807 000 000) 484 000 000 2 787 000 000
tests::test_code_is_not_reset_within_program_submission 221 000 000; +240.00% ❗ 65 000 000 79 870 000 (47 000 000; 95 000 000) 16 000 000 401 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 132 000 000; +116.39% ❗ 61 000 000 71 020 000 (39 000 000; 84 500 000) 15 000 000 354 000 000
tests::test_code_submission_pass 100 000 000; +80.18% ❗ 55 500 000 66 460 000 (41 000 000; 83 000 000) 18 000 000 248 000 000
tests::test_create_program_duplicate 166 000 000; +9.93% ✔️ 151 000 000 175 390 000 (124 000 000; 190 500 000) 75 000 000 603 000 000
tests::test_create_program_duplicate_in_one_execution 150 000 000; +31.00% ❗ 114 500 000 129 370 000 (87 000 000; 146 500 000) 38 000 000 521 000 000
tests::test_create_program_miscellaneous 206 000 000; +20.47% ✔️ 171 000 000 208 050 000 (135 500 000; 221 500 000) 72 000 000 948 000 000
tests::test_create_program_no_code_hash 801 000 000; +198.88% ❗ 268 000 000 323 440 000 (223 500 000; 357 500 000) 158 000 000 905 000 000
tests::test_create_program_simple 158 000 000; -4.53% ✔️ 165 500 000 208 970 000 (148 000 000; 227 500 000) 98 000 000 720 000 000
tests::test_create_program_with_exceeding_value 102 000 000; +13.97% ✔️ 89 500 000 100 830 000 (71 500 000; 119 000 000) 26 000 000 333 000 000
tests::test_create_program_with_value_lt_ed 108 000 000; -3.57% ✔️ 112 000 000 129 080 000 (84 500 000; 147 000 000) 50 000 000 628 000 000
tests::test_create_program_without_gas_works 93 000 000; +6.90% ✔️ 87 000 000 99 550 000 (67 000 000; 115 000 000) 38 000 000 363 000 000
tests::test_message_processing_for_non_existing_destination 47 000 000; -30.37% ✔️ 67 500 000 83 680 000 (54 500 000; 97 000 000) 25 000 000 272 000 000
tests::test_reply_to_terminated_program 61 000 000; -30.68% ✔️ 88 000 000 108 300 000 (67 500 000; 121 500 000) 34 000 000 390 000 000
tests::test_same_code_submission_fails 314 000 000; +375.76% ‼️ 66 000 000 78 930 000 (52 000 000; 93 000 000) 20 000 000 262 000 000
tests::test_two_contracts_composition_works 697 000 000; +185.07% ❗ 244 500 000 293 790 000 (211 500 000; 308 500 000) 153 000 000 906 000 000
tests::uninitialized_program_should_accept_replies 387 000 000; +232.19% ❗ 116 500 000 137 410 000 (97 500 000; 148 000 000) 53 000 000 443 000 000
tests::unstoppable_block_execution_works 349 000 000; +353.25% ‼️ 77 000 000 85 600 000 (59 000 000; 103 000 000) 31 000 000 241 000 000
tests::unused_gas_released_back_works 77 000 000; +11.59% ✔️ 69 000 000 83 430 000 (50 000 000; 97 500 000) 21 000 000 301 000 000
tests::wake_messages_after_program_inited 786 000 000; +229.56% ❗ 238 500 000 286 980 000 (202 000 000; 307 500 000) 122 000 000 876 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 63 000 000; +29.90% ✔️ 48 500 000 54 490 000 (29 500 000; 68 000 000) 7 000 000 228 000 000
tests::check_changed_pages_in_storage 232 000 000; +241.18% ❗ 68 000 000 80 410 000 (53 000 000; 93 500 000) 17 000 000 348 000 000
tests::debug_mode_works 202 000 000; +167.55% ❗ 75 500 000 91 690 000 (57 500 000; 111 000 000) 18 000 000 396 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 246 000 000; +452.81% ‼️ 44 500 000 51 210 000 (30 000 000; 60 000 000) 7 000 000 231 000 000
tests::dequeued_impl_works_manually 224 000 000; +292.98% ❗ 57 000 000 65 890 000 (43 500 000; 78 500 000) 14 000 000 284 000 000
tests::queue_processing_impl_works_manually 208 000 000; +220.00% ‼️ 65 000 000 71 970 000 (46 000 000; 87 000 000) 22 000 000 184 000 000
tests::queue_works 206 000 000; +232.26% ❗ 62 000 000 72 750 000 (47 000 000; 85 000 000) 18 000 000 316 000 000
tests::sent_impl_works 98 000 000; +53.12% ❗ 64 000 000 72 510 000 (48 500 000; 86 000 000) 18 000 000 204 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 114 000 000; +204.00% ❗ 37 500 000 44 030 000 (22 000 000; 59 000 000) 5 000 000 158 000 000
tests::custom_fee_multiplier_updated_per_block 103 000 000; +74.58% ❗ 59 000 000 67 930 000 (40 000 000; 76 000 000) 16 000 000 257 000 000
tests::fee_rounding_error_bounded_by_multiplier 220 000 000; +252.00% ❗ 62 500 000 70 570 000 (44 500 000; 80 500 000) 21 000 000 260 000 000
tests::mq_size_affecting_fee_works 87 000 000; +47.46% ❗ 59 000 000 69 660 000 (44 000 000; 82 500 000) 14 000 000 296 000 000
tests::mq_size_not_affecting_fee_works 41 000 000; -33.87% ✔️ 62 000 000 69 740 000 (41 000 000; 79 500 000) 20 000 000 492 000 000
tests::query_info_and_fee_details_work 124 000 000; +104.96% ❗ 60 500 000 68 580 000 (45 500 000; 79 500 000) 8 000 000 220 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 50 000 000; +19.05% ✔️ 42 000 000 49 880 000 (26 500 000; 62 000 000) 5 000 000 236 000 000
tests::pause_program_twice_fails 44 000 000; -30.16% ✔️ 63 000 000 71 350 000 (40 000 000; 83 500 000) 15 000 000 276 000 000
tests::pause_program_works 87 000 000; +21.68% ✔️ 71 500 000 82 350 000 (57 000 000; 101 000 000) 25 000 000 220 000 000
tests::pause_terminated_program_fails 44 000 000; -27.87% ✔️ 61 000 000 68 220 000 (39 500 000; 86 000 000) 16 000 000 222 000 000
tests::pause_uninitialized_program_works 266 000 000; +247.71% ❗ 76 500 000 88 120 000 (56 000 000; 104 000 000) 31 000 000 276 000 000
tests::resume_program_twice_fails 239 000 000; +137.81% ❗ 100 500 000 117 180 000 (75 000 000; 138 000 000) 34 000 000 407 000 000
tests::resume_program_wrong_list_fails 129 000 000; +50.88% ❗ 85 500 000 95 110 000 (65 000 000; 108 000 000) 33 000 000 321 000 000
tests::resume_program_wrong_memory_fails 230 000 000; +172.19% ❗ 84 500 000 94 660 000 (68 000 000; 110 500 000) 24 000 000 245 000 000
tests::resume_uninitialized_program_works 170 000 000; +85.79% ❗ 91 500 000 106 670 000 (68 500 000; 124 500 000) 34 000 000 406 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 182 000 000; +275.26% ❗ 48 500 000 51 440 000 (27 500 000; 64 500 000) 5 000 000 188 000 000
tests::dust_discarded_with_noop 97 000 000; +59.02% ❗ 61 000 000 68 820 000 (47 500 000; 80 000 000) 20 000 000 247 000 000
tests::external_submitter_gets_rewarded 195 000 000; +222.31% ❗ 60 500 000 69 760 000 (43 500 000; 80 000 000) 20 000 000 327 000 000
tests::gas_properly_handled_for_trap_replies 194 000 000; +240.35% ❗ 57 000 000 69 360 000 (44 000 000; 81 000 000) 17 000 000 256 000 000
tests::ocw_double_charge 101 000 000; +66.94% ❗ 60 500 000 74 360 000 (46 500 000; 83 000 000) 14 000 000 224 000 000
tests::ocw_interval_maintained 120 000 000; +110.53% ❗ 57 000 000 72 590 000 (44 500 000; 73 500 000) 21 000 000 268 000 000
tests::ocw_interval_stretches_for_large_wait_list 63 000 000; -3.82% ✔️ 65 500 000 75 310 000 (46 000 000; 83 500 000) 18 000 000 279 000 000
tests::ocw_overlapping_prevented 60 000 000; +0.84% ✔️ 59 500 000 66 600 000 (45 000 000; 76 000 000) 15 000 000 346 000 000
tests::rent_charge_works 54 000 000; -10.00% ✔️ 60 000 000 68 260 000 (41 000 000; 84 000 000) 13 000 000 227 000 000
tests::trap_reply_message_is_sent 82 000 000; +40.17% ✔️ 58 500 000 68 730 000 (41 000 000; 84 500 000) 14 000 000 224 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 254 218 838 013; +57.44% ‼️ 161 467 261 911 161 655 564 953 (161 027 627 995; 162 127 892 579) 159 601 081 067 165 216 477 974

name = Async RwLock

name current median average lower/upper quartile min max
check readers 325 817 488; +620.91% ‼️ 45 195 446 50 344 798 (42 046 540; 51 340 440) 34 284 064 102 436 297
forever lock 467 024 087; +630.25% ‼️ 63 953 768 72 874 125 (56 610 849; 80 352 404) 45 112 843 149 399 723
read while writing 815 204 124; +618.18% ‼️ 113 509 939 124 006 949 (103 262 203; 137 573 296) 82 907 370 210 680 847
rwlock wide 1 424 293 014; +498.01% ‼️ 238 171 612 229 712 596 (203 900 087; 252 749 294) 161 327 185 301 397 040
write while reading 986 816 440; +637.35% ‼️ 133 832 034 147 200 047 (122 224 753; 179 104 527) 93 519 062 210 527 689

name = Async init

name current median average lower/upper quartile min max
approved pong 19 563 703 751; +15.13% ‼️ 16 992 683 562 17 010 809 522 (16 882 347 264; 17 129 006 273) 16 606 442 277 17 725 161 904

name = Async-await

name current median average lower/upper quartile min max
normal 361 041 384; +371.43% ‼️ 76 584 968 76 818 364 (70 164 824; 82 442 108) 39 028 168 103 973 836
panic 396 280 693; +582.62% ‼️ 58 053 245 63 306 262 (46 120 191; 80 989 440) 36 692 045 104 504 045

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 629 863 021; +392.77% ‼️ 127 820 452 118 235 457 (90 839 885; 141 148 307) 53 888 204 161 233 546

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 17 882 055 066; +91.37% ‼️ 9 344 129 686 9 335 222 043 (9 205 326 297; 9 434 640 315) 8 947 059 129 9 789 197 387
2 of 3; bob & eve 16 518 370 201; +76.31% ‼️ 9 369 001 571 9 374 070 553 (9 268 573 723; 9 496 224 366) 8 949 736 514 9 716 623 620
2 of 3; eve & alice 17 875 099 067; +91.76% ‼️ 9 321 585 233 9 325 396 089 (9 219 421 396; 9 415 195 075) 9 002 361 894 9 864 650 265
2 of 3; eve doesn't answer, alice replies with incorrect payload 15 268 755 406; +65.31% ‼️ 9 236 292 438 9 227 225 380 (9 112 866 131; 9 353 650 988) 8 731 064 350 9 664 244 373
2 of 3; no replies 10 541 485 839; +16.72% ‼️ 9 031 654 057 9 030 448 948 (8 872 701 128; 9 148 706 490) 8 666 504 502 9 599 349 390
Single signatory & zero threshold 15 464 283 323; +67.47% ‼️ 9 234 007 838 9 250 692 386 (9 118 068 898; 9 366 419 066) 8 876 468 772 9 617 862 536
Three signatories & redundand threshold 17 510 394 015; +84.78% ‼️ 9 476 419 099 9 472 637 201 (9 346 479 137; 9 575 954 960) 9 036 804 278 9 878 672 229
Three signatories; Bob replies with incorrect signature 15 759 253 332; +70.37% ‼️ 9 250 235 744 9 261 331 267 (9 114 381 148; 9 405 221 737) 8 909 494 518 9 718 526 420
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 15 983 094 692; +73.68% ‼️ 9 202 852 004 9 215 097 456 (9 104 318 491; 9 317 323 301) 8 919 906 454 9 597 871 249

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 5 119 531 188; +4.69% ❗ 4 890 354 179 4 910 673 092 (4 778 516 164; 5 055 279 698) 4 496 117 232 5 291 998 391
correct signature but for another message 5 415 832 128; +5.82% ❗ 5 117 865 600 5 102 243 715 (5 000 659 945; 5 243 300 709) 4 637 241 693 5 420 560 975
no reply 4 976 435 898; +0.95% ✔️ 4 929 454 446 4 876 374 932 (4 733 189 814; 5 019 099 580) 4 382 119 215 5 293 510 744
signed message 5 560 785 306; +8.09% ‼️ 5 144 434 374 5 091 354 099 (4 989 519 044; 5 228 960 706) 4 595 964 832 5 478 385 352

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 489 316 985; +441.59% ‼️ 90 347 874 90 524 155 (81 027 165; 101 818 433) 50 443 930 115 971 869

name = Decoder

name current median average lower/upper quartile min max
decoder 321 999 920; +396.38% ‼️ 64 869 429 57 604 921 (35 887 037; 71 531 966) 21 480 744 95 851 564

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 025 681 670; +536.37% ‼️ 318 316 782 310 989 569 (281 201 506; 339 897 871) 200 756 361 417 818 746
join 1 839 698 598; +651.89% ‼️ 244 675 583 256 763 713 (225 510 029; 275 027 298) 194 095 626 377 166 192
select 1 986 912 352; +700.86% ‼️ 248 097 304 258 936 685 (223 149 377; 302 749 378) 188 898 346 400 707 040

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 872 065 190; +630.50% ‼️ 256 270 047 248 961 967 (218 513 429; 273 782 598) 169 736 081 331 469 498

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 344 718 106; +306.00% ‼️ 84 906 151 84 892 010 (74 111 627; 97 402 438) 34 460 655 110 908 240

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 392 235 727; +436.27% ‼️ 73 142 145 64 845 795 (32 901 577; 86 014 331) 21 117 445 112 108 390

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 18 572 961 101; +16.59% ‼️ 15 929 923 117 15 950 421 091 (15 789 060 790; 16 082 780 295) 15 621 243 824 16 518 226 018

name = Multiping

name current median average lower/upper quartile min max
multiping 289 616 466; +343.05% ‼️ 65 368 476 58 577 159 (34 954 860; 74 779 560) 23 063 214 95 758 669

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 205 831 424; +537.47% ‼️ 32 289 023 41 053 476 (23 407 436; 58 060 968) 16 053 600 83 595 612
ping-pong wgas 373 948 645; +700.08% ‼️ 46 738 620 52 681 168 (39 144 770; 54 517 096) 30 444 313 103 343 930

name = Program_id test

name current median average lower/upper quartile min max
program_id 295 270 393; +371.00% ‼️ 62 689 721 62 166 485 (57 964 071; 68 233 974) 23 212 054 95 105 920

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 332 853 612; +574.62% ‼️ 49 339 465 60 487 340 (42 979 349; 84 277 421) 29 723 807 114 326 368
state-saving 280 187 368; +500.67% ‼️ 46 645 835 52 495 478 (39 101 558; 55 373 257) 29 368 282 114 822 496

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 327 482 539; +368.94% ‼️ 69 834 129 67 715 357 (62 127 219; 75 446 047) 24 881 789 100 674 756
Try to re-init existing program 484 650 402; +464.75% ‼️ 85 817 208 80 657 542 (58 796 414; 97 136 569) 46 682 960 118 310 563

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 114 470 904; +479.24% ‼️ 19 762 417 28 380 798 (15 693 398; 44 861 120) 10 669 795 67 413 176

name = Wait test

name current median average lower/upper quartile min max
wait 422 704 393; +641.66% ‼️ 56 994 652 69 007 614 (51 772 230; 87 966 748) 38 306 532 117 149 517

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 910 179 354; +233.74% ‼️ 272 719 969 264 560 121 (231 637 790; 297 267 084) 170 681 577 368 210 834

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 503 789 618; +437.28% ‼️ 93 767 263 94 214 784 (86 322 126; 101 443 718) 66 588 508 123 955 062

name = guestbook test

name current median average lower/upper quartile min max
guestbook 10 565 275 902; +18.75% ‼️ 8 896 817 051 8 890 655 950 (8 751 667 514; 8 997 026 053) 8 598 425 006 9 334 582 178

name = gui test

name current median average lower/upper quartile min max
gui 13 378 464 453; +17.72% ‼️ 11 364 185 714 11 398 761 155 (11 266 498 594; 11 502 960 612) 11 096 640 970 11 844 094 902
4f4407e
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 78 163 000 000; +2917.29% ❗ 2 590 500 000 6 942 279 999 (2 495 500 000; 3 974 000 000) 2 385 000 000 309 920 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 32 000 000; +18.52% ✔️ 27 000 000 51 490 000 (21 500 000; 37 000 000) 6 000 000 471 000 000
tests::all_keys_are_cleared 22 000 000; -43.59% ✔️ 39 000 000 61 960 000 (31 000 000; 52 500 000) 16 000 000 472 000 000
tests::gas_free_after_consumed 26 000 000; -31.58% ✔️ 38 000 000 59 260 000 (30 000 000; 55 500 000) 13 000 000 332 000 000
tests::limit_vs_origin 24 000 000; -36.84% ✔️ 38 000 000 59 740 000 (27 000 000; 60 500 000) 12 000 000 291 000 000
tests::long_chain 36 000 000; -10.00% ✔️ 40 000 000 61 420 000 (27 500 000; 56 000 000) 14 000 000 329 000 000
tests::simple_value_tree 35 000 000; +0.00% ✔️ 35 000 000 60 620 000 (26 500 000; 51 500 000) 9 000 000 480 000 000
tests::split_with_no_value 24 000 000; -38.46% ✔️ 39 000 000 52 780 000 (29 000 000; 57 000 000) 12 000 000 244 000 000
tests::sub_nodes_tree 42 000 000; +9.09% ✔️ 38 500 000 53 290 000 (28 000 000; 59 500 000) 12 000 000 278 000 000
tests::sub_nodes_tree_with_spends 44 000 000; +12.82% ✔️ 39 000 000 53 860 000 (29 000 000; 54 500 000) 10 000 000 320 000 000
tests::subtree_gas_limit_remains_intact 51 000 000; +32.47% ✔️ 38 500 000 57 470 000 (27 500 000; 59 000 000) 12 000 000 324 000 000
tests::value_tree_known_errors 28 000 000; -28.21% ✔️ 39 000 000 51 090 000 (28 000 000; 55 000 000) 12 000 000 301 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 9 000 000; -70.49% ✔️ 30 500 000 38 330 000 (20 000 000; 43 000 000) 7 000 000 208 000 000
schedule::test::print_test_schedule 39 000 000; +44.44% ✔️ 27 000 000 40 020 000 (17 500 000; 43 500 000) 7 000 000 351 000 000
tests::block_gas_limit_works 30 000 000; -41.75% ✔️ 51 500 000 72 290 000 (38 500 000; 84 500 000) 20 000 000 433 000 000
tests::call_forbidden_function 31 000 000; -28.74% ✔️ 43 500 000 57 010 000 (31 000 000; 67 000 000) 13 000 000 248 000 000
tests::cascading_messages_with_value_do_not_overcharge 216 000 000; -21.88% ✔️ 276 500 000 361 310 000 (218 000 000; 341 500 000) 153 000 000 1 641 000 000
tests::claim_value_from_mailbox_works 29 000 000; -38.95% ✔️ 47 500 000 67 040 000 (37 000 000; 75 500 000) 16 000 000 357 000 000
tests::defer_program_initialization 100 000 000; -11.50% ✔️ 113 000 000 145 690 000 (85 500 000; 156 500 000) 61 000 000 649 000 000
tests::distributor_distribute 100 000 000; -5.66% ✔️ 106 000 000 123 690 000 (79 000 000; 134 500 000) 46 000 000 372 000 000
tests::distributor_initialize 50 000 000; -41.52% ✔️ 85 500 000 109 300 000 (63 000 000; 122 500 000) 33 000 000 480 000 000
tests::events_logging_works 40 000 000; -31.03% ✔️ 58 000 000 80 960 000 (44 500 000; 78 000 000) 25 000 000 415 000 000
tests::exit_handle 100 000 000; +57.48% ❗ 63 500 000 75 920 000 (44 000 000; 87 000 000) 13 000 000 263 000 000
tests::exit_init 75 000 000; -1.96% ✔️ 76 500 000 96 720 000 (59 000 000; 116 500 000) 26 000 000 356 000 000
tests::gas_spent_precalculated 49 000 000; -17.65% ✔️ 59 500 000 80 640 000 (43 000 000; 98 000 000) 19 000 000 395 000 000
tests::gas_spent_vs_balance 509 000 000; +297.66% ❗ 128 000 000 156 580 000 (105 500 000; 166 000 000) 48 000 000 608 000 000
tests::init_message_logging_works 77 000 000; +16.67% ✔️ 66 000 000 81 810 000 (44 500 000; 94 500 000) 21 000 000 325 000 000
tests::init_wait_reply_exit_cleaned_storage 278 000 000; +126.02% ❗ 123 000 000 158 000 000 (96 500 000; 161 000 000) 65 000 000 1 324 000 000
tests::lazy_pages 67 000 000; -2.19% ✔️ 68 500 000 82 930 000 (45 000 000; 95 000 000) 25 000 000 368 000 000
tests::mailbox_works 45 000 000; -39.19% ✔️ 74 000 000 92 580 000 (57 500 000; 102 000 000) 17 000 000 408 000 000
tests::memory_access_cases 58 000 000; -20.55% ✔️ 73 000 000 88 680 000 (53 000 000; 99 000 000) 23 000 000 391 000 000
tests::messages_processing_works 132 000 000; +97.01% ❗ 67 000 000 84 080 000 (49 000 000; 101 000 000) 19 000 000 296 000 000
tests::messages_to_paused_program_skipped 172 000 000; +108.48% ❗ 82 500 000 100 200 000 (62 500 000; 106 500 000) 23 000 000 432 000 000
tests::messages_to_uninitialized_program_wait 313 000 000; +268.24% ❗ 85 000 000 98 440 000 (62 000 000; 113 500 000) 40 000 000 385 000 000
tests::no_redundant_gas_value_after_exiting 150 000 000; +138.10% ❗ 63 000 000 80 290 000 (50 000 000; 87 000 000) 21 000 000 394 000 000
tests::paused_program_keeps_id 403 000 000; +338.04% ❗ 92 000 000 107 540 000 (65 500 000; 123 000 000) 36 000 000 648 000 000
tests::program_lifecycle_works 273 000 000; +323.26% ❗ 64 500 000 83 660 000 (46 000 000; 91 500 000) 15 000 000 355 000 000
tests::program_messages_to_paused_program_skipped 359 000 000; +180.47% ❗ 128 000 000 169 850 000 (99 000 000; 172 000 000) 50 000 000 804 000 000
tests::replies_to_paused_program_skipped 171 000 000; +103.57% ❗ 84 000 000 98 500 000 (62 000 000; 107 000 000) 27 000 000 354 000 000
tests::restrict_start_section 130 000 000; +126.09% ❗ 57 500 000 76 740 000 (47 000 000; 86 000 000) 17 000 000 345 000 000
tests::resume_program_works 291 000 000; +121.29% ❗ 131 500 000 152 620 000 (98 000 000; 165 500 000) 63 000 000 822 000 000
tests::send_message_expected_failure 192 000 000; +220.00% ❗ 60 000 000 77 300 000 (43 500 000; 88 500 000) 14 000 000 288 000 000
tests::send_message_works 65 000 000; +2.36% ✔️ 63 500 000 76 800 000 (48 000 000; 84 000 000) 24 000 000 253 000 000
tests::send_reply_failure_to_claim_from_mailbox 64 000 000; -9.22% ✔️ 70 500 000 84 390 000 (44 000 000; 103 500 000) 16 000 000 482 000 000
tests::send_reply_value_claiming_works 97 000 000; +63.03% ❗ 59 500 000 80 880 000 (48 000 000; 91 500 000) 22 000 000 468 000 000
tests::send_reply_works 222 000 000; +241.54% ❗ 65 000 000 73 350 000 (41 000 000; 90 000 000) 23 000 000 272 000 000
tests::spent_gas_to_reward_block_author_works 263 000 000; +342.02% ❗ 59 500 000 73 910 000 (43 500 000; 84 000 000) 14 000 000 288 000 000
tests::submit_program_expected_failure 168 000 000; +170.97% ❗ 62 000 000 71 900 000 (40 500 000; 84 500 000) 16 000 000 458 000 000
tests::submit_program_fails_on_duplicate_id 247 000 000; +318.64% ‼️ 59 000 000 71 590 000 (42 000 000; 90 000 000) 16 000 000 229 000 000
tests::test_async_messages 1 432 000 000; +128.75% ❗ 626 000 000 800 900 000 (575 500 000; 807 000 000) 484 000 000 2 787 000 000
tests::test_code_is_not_reset_within_program_submission 240 000 000; +269.23% ❗ 65 000 000 79 870 000 (47 000 000; 95 000 000) 16 000 000 401 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 152 000 000; +149.18% ❗ 61 000 000 71 020 000 (39 000 000; 84 500 000) 15 000 000 354 000 000
tests::test_code_submission_pass 132 000 000; +137.84% ❗ 55 500 000 66 460 000 (41 000 000; 83 000 000) 18 000 000 248 000 000
tests::test_create_program_duplicate 222 000 000; +47.02% ❗ 151 000 000 175 390 000 (124 000 000; 190 500 000) 75 000 000 603 000 000
tests::test_create_program_duplicate_in_one_execution 169 000 000; +47.60% ❗ 114 500 000 129 370 000 (87 000 000; 146 500 000) 38 000 000 521 000 000
tests::test_create_program_miscellaneous 161 000 000; -5.85% ✔️ 171 000 000 208 050 000 (135 500 000; 221 500 000) 72 000 000 948 000 000
tests::test_create_program_no_code_hash 449 000 000; +67.54% ❗ 268 000 000 323 440 000 (223 500 000; 357 500 000) 158 000 000 905 000 000
tests::test_create_program_simple 282 000 000; +70.39% ❗ 165 500 000 208 970 000 (148 000 000; 227 500 000) 98 000 000 720 000 000
tests::test_create_program_with_exceeding_value 172 000 000; +92.18% ❗ 89 500 000 100 830 000 (71 500 000; 119 000 000) 26 000 000 333 000 000
tests::test_create_program_with_value_lt_ed 123 000 000; +9.82% ✔️ 112 000 000 129 080 000 (84 500 000; 147 000 000) 50 000 000 628 000 000
tests::test_create_program_without_gas_works 58 000 000; -33.33% ✔️ 87 000 000 99 550 000 (67 000 000; 115 000 000) 38 000 000 363 000 000
tests::test_message_processing_for_non_existing_destination 84 000 000; +24.44% ✔️ 67 500 000 83 680 000 (54 500 000; 97 000 000) 25 000 000 272 000 000
tests::test_reply_to_terminated_program 336 000 000; +281.82% ❗ 88 000 000 108 300 000 (67 500 000; 121 500 000) 34 000 000 390 000 000
tests::test_same_code_submission_fails 152 000 000; +130.30% ❗ 66 000 000 78 930 000 (52 000 000; 93 000 000) 20 000 000 262 000 000
tests::test_two_contracts_composition_works 792 000 000; +223.93% ❗ 244 500 000 293 790 000 (211 500 000; 308 500 000) 153 000 000 906 000 000
tests::uninitialized_program_should_accept_replies 325 000 000; +178.97% ❗ 116 500 000 137 410 000 (97 500 000; 148 000 000) 53 000 000 443 000 000
tests::unstoppable_block_execution_works 133 000 000; +72.73% ❗ 77 000 000 85 600 000 (59 000 000; 103 000 000) 31 000 000 241 000 000
tests::unused_gas_released_back_works 311 000 000; +350.72% ‼️ 69 000 000 83 430 000 (50 000 000; 97 500 000) 21 000 000 301 000 000
tests::wake_messages_after_program_inited 925 000 000; +287.84% ‼️ 238 500 000 286 980 000 (202 000 000; 307 500 000) 122 000 000 876 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 88 000 000; +81.44% ❗ 48 500 000 54 490 000 (29 500 000; 68 000 000) 7 000 000 228 000 000
tests::check_changed_pages_in_storage 119 000 000; +75.00% ❗ 68 000 000 80 410 000 (53 000 000; 93 500 000) 17 000 000 348 000 000
tests::debug_mode_works 95 000 000; +25.83% ✔️ 75 500 000 91 690 000 (57 500 000; 111 000 000) 18 000 000 396 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 74 000 000; +66.29% ❗ 44 500 000 51 210 000 (30 000 000; 60 000 000) 7 000 000 231 000 000
tests::dequeued_impl_works_manually 189 000 000; +231.58% ❗ 57 000 000 65 890 000 (43 500 000; 78 500 000) 14 000 000 284 000 000
tests::queue_processing_impl_works_manually 133 000 000; +104.62% ❗ 65 000 000 71 970 000 (46 000 000; 87 000 000) 22 000 000 184 000 000
tests::queue_works 131 000 000; +111.29% ❗ 62 000 000 72 750 000 (47 000 000; 85 000 000) 18 000 000 316 000 000
tests::sent_impl_works 148 000 000; +131.25% ❗ 64 000 000 72 510 000 (48 500 000; 86 000 000) 18 000 000 204 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 195 000 000; +420.00% ‼️ 37 500 000 44 030 000 (22 000 000; 59 000 000) 5 000 000 158 000 000
tests::custom_fee_multiplier_updated_per_block 122 000 000; +106.78% ❗ 59 000 000 67 930 000 (40 000 000; 76 000 000) 16 000 000 257 000 000
tests::fee_rounding_error_bounded_by_multiplier 95 000 000; +52.00% ❗ 62 500 000 70 570 000 (44 500 000; 80 500 000) 21 000 000 260 000 000
tests::mq_size_affecting_fee_works 129 000 000; +118.64% ❗ 59 000 000 69 660 000 (44 000 000; 82 500 000) 14 000 000 296 000 000
tests::mq_size_not_affecting_fee_works 91 000 000; +46.77% ❗ 62 000 000 69 740 000 (41 000 000; 79 500 000) 20 000 000 492 000 000
tests::query_info_and_fee_details_work 67 000 000; +10.74% ✔️ 60 500 000 68 580 000 (45 500 000; 79 500 000) 8 000 000 220 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 38 000 000; -9.52% ✔️ 42 000 000 49 880 000 (26 500 000; 62 000 000) 5 000 000 236 000 000
tests::pause_program_twice_fails 68 000 000; +7.94% ✔️ 63 000 000 71 350 000 (40 000 000; 83 500 000) 15 000 000 276 000 000
tests::pause_program_works 46 000 000; -35.66% ✔️ 71 500 000 82 350 000 (57 000 000; 101 000 000) 25 000 000 220 000 000
tests::pause_terminated_program_fails 126 000 000; +106.56% ❗ 61 000 000 68 220 000 (39 500 000; 86 000 000) 16 000 000 222 000 000
tests::pause_uninitialized_program_works 81 000 000; +5.88% ✔️ 76 500 000 88 120 000 (56 000 000; 104 000 000) 31 000 000 276 000 000
tests::resume_program_twice_fails 79 000 000; -21.39% ✔️ 100 500 000 117 180 000 (75 000 000; 138 000 000) 34 000 000 407 000 000
tests::resume_program_wrong_list_fails 178 000 000; +108.19% ❗ 85 500 000 95 110 000 (65 000 000; 108 000 000) 33 000 000 321 000 000
tests::resume_program_wrong_memory_fails 101 000 000; +19.53% ✔️ 84 500 000 94 660 000 (68 000 000; 110 500 000) 24 000 000 245 000 000
tests::resume_uninitialized_program_works 88 000 000; -3.83% ✔️ 91 500 000 106 670 000 (68 500 000; 124 500 000) 34 000 000 406 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 77 000 000; +58.76% ❗ 48 500 000 51 440 000 (27 500 000; 64 500 000) 5 000 000 188 000 000
tests::dust_discarded_with_noop 95 000 000; +55.74% ❗ 61 000 000 68 820 000 (47 500 000; 80 000 000) 20 000 000 247 000 000
tests::external_submitter_gets_rewarded 62 000 000; +2.48% ✔️ 60 500 000 69 760 000 (43 500 000; 80 000 000) 20 000 000 327 000 000
tests::gas_properly_handled_for_trap_replies 63 000 000; +10.53% ✔️ 57 000 000 69 360 000 (44 000 000; 81 000 000) 17 000 000 256 000 000
tests::ocw_double_charge 72 000 000; +19.01% ✔️ 60 500 000 74 360 000 (46 500 000; 83 000 000) 14 000 000 224 000 000
tests::ocw_interval_maintained 274 000 000; +380.70% ‼️ 57 000 000 72 590 000 (44 500 000; 73 500 000) 21 000 000 268 000 000
tests::ocw_interval_stretches_for_large_wait_list 117 000 000; +78.63% ❗ 65 500 000 75 310 000 (46 000 000; 83 500 000) 18 000 000 279 000 000
tests::ocw_overlapping_prevented 52 000 000; -12.61% ✔️ 59 500 000 66 600 000 (45 000 000; 76 000 000) 15 000 000 346 000 000
tests::rent_charge_works 168 000 000; +180.00% ❗ 60 000 000 68 260 000 (41 000 000; 84 000 000) 13 000 000 227 000 000
tests::trap_reply_message_is_sent 150 000 000; +156.41% ❗ 58 500 000 68 730 000 (41 000 000; 84 500 000) 14 000 000 224 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 598 215 725 930; +270.49% ‼️ 161 467 261 911 161 655 564 953 (161 027 627 995; 162 127 892 579) 159 601 081 067 165 216 477 974

name = Async RwLock

name current median average lower/upper quartile min max
check readers 2 708 614 234; +5893.11% ‼️ 45 195 446 50 344 798 (42 046 540; 51 340 440) 34 284 064 102 436 297
forever lock 2 152 500 325; +3265.71% ‼️ 63 953 768 72 874 125 (56 610 849; 80 352 404) 45 112 843 149 399 723
read while writing 4 908 274 763; +4224.09% ‼️ 113 509 939 124 006 949 (103 262 203; 137 573 296) 82 907 370 210 680 847
rwlock wide 8 638 387 112; +3526.96% ‼️ 238 171 612 229 712 596 (203 900 087; 252 749 294) 161 327 185 301 397 040
write while reading 4 599 645 796; +3336.88% ‼️ 133 832 034 147 200 047 (122 224 753; 179 104 527) 93 519 062 210 527 689

name = Async init

name current median average lower/upper quartile min max
approved pong 37 613 996 089; +121.35% ‼️ 16 992 683 562 17 010 809 522 (16 882 347 264; 17 129 006 273) 16 606 442 277 17 725 161 904

name = Async-await

name current median average lower/upper quartile min max
normal 4 123 867 803; +5284.70% ‼️ 76 584 968 76 818 364 (70 164 824; 82 442 108) 39 028 168 103 973 836
panic 450 481 621; +675.98% ‼️ 58 053 245 63 306 262 (46 120 191; 80 989 440) 36 692 045 104 504 045

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 6 514 132 559; +4996.31% ‼️ 127 820 452 118 235 457 (90 839 885; 141 148 307) 53 888 204 161 233 546

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 33 982 002 112; +263.67% ‼️ 9 344 129 686 9 335 222 043 (9 205 326 297; 9 434 640 315) 8 947 059 129 9 789 197 387
2 of 3; bob & eve 33 940 953 105; +262.27% ‼️ 9 369 001 571 9 374 070 553 (9 268 573 723; 9 496 224 366) 8 949 736 514 9 716 623 620
2 of 3; eve & alice 34 002 286 802; +264.77% ‼️ 9 321 585 233 9 325 396 089 (9 219 421 396; 9 415 195 075) 9 002 361 894 9 864 650 265
2 of 3; eve doesn't answer, alice replies with incorrect payload 30 267 813 230; +227.71% ‼️ 9 236 292 438 9 227 225 380 (9 112 866 131; 9 353 650 988) 8 731 064 350 9 664 244 373
2 of 3; no replies 23 217 145 250; +157.06% ‼️ 9 031 654 057 9 030 448 948 (8 872 701 128; 9 148 706 490) 8 666 504 502 9 599 349 390
Single signatory & zero threshold 30 891 191 526; +234.54% ‼️ 9 234 007 838 9 250 692 386 (9 118 068 898; 9 366 419 066) 8 876 468 772 9 617 862 536
Three signatories & redundand threshold 25 912 300 829; +173.44% ‼️ 9 476 419 099 9 472 637 201 (9 346 479 137; 9 575 954 960) 9 036 804 278 9 878 672 229
Three signatories; Bob replies with incorrect signature 24 873 980 128; +168.90% ‼️ 9 250 235 744 9 261 331 267 (9 114 381 148; 9 405 221 737) 8 909 494 518 9 718 526 420
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 22 566 441 258; +145.21% ‼️ 9 202 852 004 9 215 097 456 (9 104 318 491; 9 317 323 301) 8 919 906 454 9 597 871 249

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 10 788 334 981; +120.60% ‼️ 4 890 354 179 4 910 673 092 (4 778 516 164; 5 055 279 698) 4 496 117 232 5 291 998 391
correct signature but for another message 18 744 446 295; +266.26% ‼️ 5 117 865 600 5 102 243 715 (5 000 659 945; 5 243 300 709) 4 637 241 693 5 420 560 975
no reply 13 742 564 250; +178.78% ‼️ 4 929 454 446 4 876 374 932 (4 733 189 814; 5 019 099 580) 4 382 119 215 5 293 510 744
signed message 18 519 046 426; +259.98% ‼️ 5 144 434 374 5 091 354 099 (4 989 519 044; 5 228 960 706) 4 595 964 832 5 478 385 352

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 4 358 864 444; +4724.53% ‼️ 90 347 874 90 524 155 (81 027 165; 101 818 433) 50 443 930 115 971 869

name = Decoder

name current median average lower/upper quartile min max
decoder 3 798 272 675; +5755.26% ‼️ 64 869 429 57 604 921 (35 887 037; 71 531 966) 21 480 744 95 851 564

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 7 489 281 381; +2252.78% ‼️ 318 316 782 310 989 569 (281 201 506; 339 897 871) 200 756 361 417 818 746
join 3 465 048 076; +1316.18% ‼️ 244 675 583 256 763 713 (225 510 029; 275 027 298) 194 095 626 377 166 192
select 4 804 539 137; +1836.55% ‼️ 248 097 304 258 936 685 (223 149 377; 302 749 378) 188 898 346 400 707 040

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 4 532 590 471; +1668.68% ‼️ 256 270 047 248 961 967 (218 513 429; 273 782 598) 169 736 081 331 469 498

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 4 162 449 212; +4802.41% ‼️ 84 906 151 84 892 010 (74 111 627; 97 402 438) 34 460 655 110 908 240

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 3 142 089 265; +4195.87% ‼️ 73 142 145 64 845 795 (32 901 577; 86 014 331) 21 117 445 112 108 390

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 30 052 211 861; +88.65% ‼️ 15 929 923 117 15 950 421 091 (15 789 060 790; 16 082 780 295) 15 621 243 824 16 518 226 018

name = Multiping

name current median average lower/upper quartile min max
multiping 2 746 938 714; +4102.24% ‼️ 65 368 476 58 577 159 (34 954 860; 74 779 560) 23 063 214 95 758 669

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 273 199 414; +746.11% ‼️ 32 289 023 41 053 476 (23 407 436; 58 060 968) 16 053 600 83 595 612
ping-pong wgas 576 060 019; +1132.51% ‼️ 46 738 620 52 681 168 (39 144 770; 54 517 096) 30 444 313 103 343 930

name = Program_id test

name current median average lower/upper quartile min max
program_id 3 382 834 874; +5296.16% ‼️ 62 689 721 62 166 485 (57 964 071; 68 233 974) 23 212 054 95 105 920

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 4 163 674 327; +8338.83% ‼️ 49 339 465 60 487 340 (42 979 349; 84 277 421) 29 723 807 114 326 368
state-saving 2 753 896 379; +5803.84% ‼️ 46 645 835 52 495 478 (39 101 558; 55 373 257) 29 368 282 114 822 496

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 3 971 366 757; +5586.86% ‼️ 69 834 129 67 715 357 (62 127 219; 75 446 047) 24 881 789 100 674 756
Try to re-init existing program 508 609 439; +492.67% ‼️ 85 817 208 80 657 542 (58 796 414; 97 136 569) 46 682 960 118 310 563

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 139 436 244; +605.56% ‼️ 19 762 417 28 380 798 (15 693 398; 44 861 120) 10 669 795 67 413 176

name = Wait test

name current median average lower/upper quartile min max
wait 1 011 962 639; +1675.54% ‼️ 56 994 652 69 007 614 (51 772 230; 87 966 748) 38 306 532 117 149 517

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 12 225 466 401; +4382.79% ‼️ 272 719 969 264 560 121 (231 637 790; 297 267 084) 170 681 577 368 210 834

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 4 875 405 483; +5099.48% ‼️ 93 767 263 94 214 784 (86 322 126; 101 443 718) 66 588 508 123 955 062

name = guestbook test

name current median average lower/upper quartile min max
guestbook 16 238 412 361; +82.52% ‼️ 8 896 817 051 8 890 655 950 (8 751 667 514; 8 997 026 053) 8 598 425 006 9 334 582 178

name = gui test

name current median average lower/upper quartile min max
gui 29 221 668 755; +157.14% ‼️ 11 364 185 714 11 398 761 155 (11 266 498 594; 11 502 960 612) 11 096 640 970 11 844 094 902
c2c4cf1
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 87 371 000 000; +3430.14% ❗ 2 475 000 000 3 976 609 999 (2 445 500 000; 2 510 000 000) 2 404 000 000 133 201 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 61 000 000; +154.17% ❗ 24 000 000 27 650 000 (18 000 000; 30 000 000) 5 000 000 231 000 000
tests::all_keys_are_cleared 80 000 000; +122.22% ❗ 36 000 000 40 610 000 (30 000 000; 42 500 000) 9 000 000 232 000 000
tests::gas_free_after_consumed 63 000 000; +85.29% ❗ 34 000 000 37 680 000 (25 500 000; 41 000 000) 10 000 000 184 000 000
tests::limit_vs_origin 96 000 000; +200.00% ❗ 32 000 000 38 640 000 (24 000 000; 42 500 000) 9 000 000 256 000 000
tests::long_chain 68 000 000; +109.23% ❗ 32 500 000 40 120 000 (23 000 000; 41 000 000) 11 000 000 460 000 000
tests::simple_value_tree 64 000 000; +100.00% ❗ 32 000 000 38 760 000 (24 000 000; 44 000 000) 7 000 000 216 000 000
tests::split_with_no_value 24 000 000; -25.00% ✔️ 32 000 000 38 700 000 (22 000 000; 42 500 000) 9 000 000 432 000 000
tests::sub_nodes_tree 141 000 000; +314.71% ❗ 34 000 000 37 650 000 (25 500 000; 44 000 000) 14 000 000 181 000 000
tests::sub_nodes_tree_with_spends 108 000 000; +242.86% ❗ 31 500 000 39 790 000 (26 000 000; 41 000 000) 11 000 000 336 000 000
tests::subtree_gas_limit_remains_intact 70 000 000; +91.78% ❗ 36 500 000 43 460 000 (26 000 000; 46 000 000) 7 000 000 336 000 000
tests::value_tree_known_errors 73 000 000; +117.91% ❗ 33 500 000 39 700 000 (24 500 000; 45 000 000) 10 000 000 324 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 44 000 000; +79.59% ❗ 24 500 000 28 900 000 (16 500 000; 33 500 000) 5 000 000 172 000 000
schedule::test::print_test_schedule 155 000 000; +559.57% ❗ 23 500 000 31 970 000 (15 000 000; 32 000 000) 6 000 000 376 000 000
tests::block_gas_limit_works 90 000 000; +104.55% ❗ 44 000 000 55 640 000 (31 500 000; 61 500 000) 17 000 000 356 000 000
tests::call_forbidden_function 99 000 000; +135.71% ❗ 42 000 000 50 720 000 (29 000 000; 61 000 000) 13 000 000 292 000 000
tests::cascading_messages_with_value_do_not_overcharge 635 000 000; +171.37% ❗ 234 000 000 249 750 000 (206 500 000; 268 000 000) 144 000 000 648 000 000
tests::claim_value_from_mailbox_works 88 000 000; +83.33% ❗ 48 000 000 53 620 000 (35 500 000; 59 000 000) 18 000 000 292 000 000
tests::defer_program_initialization 390 000 000; +338.20% ❗ 89 000 000 108 570 000 (76 500 000; 119 000 000) 53 000 000 603 000 000
tests::distributor_distribute 236 000 000; +143.30% ❗ 97 000 000 102 500 000 (73 000 000; 118 500 000) 45 000 000 467 000 000
tests::distributor_initialize 205 000 000; +190.78% ❗ 70 500 000 80 350 000 (56 000 000; 85 500 000) 30 000 000 408 000 000
tests::events_logging_works 428 000 000; +773.47% ‼️ 49 000 000 58 200 000 (40 000 000; 66 000 000) 16 000 000 196 000 000
tests::exit_handle 192 000 000; +269.23% ❗ 52 000 000 64 290 000 (40 000 000; 77 500 000) 18 000 000 452 000 000
tests::exit_init 154 000 000; +98.71% ❗ 77 500 000 85 040 000 (61 500 000; 92 500 000) 36 000 000 464 000 000
tests::gas_spent_precalculated 77 000 000; +48.08% ❗ 52 000 000 60 870 000 (41 500 000; 65 500 000) 20 000 000 348 000 000
tests::gas_spent_vs_balance 541 000 000; +389.59% ‼️ 110 500 000 123 730 000 (91 500 000; 132 500 000) 60 000 000 520 000 000
tests::init_message_logging_works 89 000 000; +56.14% ❗ 57 000 000 63 780 000 (45 000 000; 71 000 000) 18 000 000 448 000 000
tests::init_wait_reply_exit_cleaned_storage 200 000 000; +70.94% ❗ 117 000 000 125 030 000 (97 000 000; 132 000 000) 70 000 000 675 000 000
tests::lazy_pages 73 000 000; +23.73% ✔️ 59 000 000 64 890 000 (44 000 000; 77 500 000) 23 000 000 260 000 000
tests::mailbox_works 173 000 000; +181.30% ❗ 61 500 000 68 710 000 (47 000 000; 78 000 000) 19 000 000 296 000 000
tests::memory_access_cases 441 000 000; +647.46% ‼️ 59 000 000 70 710 000 (48 000 000; 88 000 000) 25 000 000 396 000 000
tests::messages_processing_works 172 000 000; +177.42% ❗ 62 000 000 66 130 000 (43 500 000; 79 000 000) 28 000 000 244 000 000
tests::messages_to_paused_program_skipped 208 000 000; +190.91% ❗ 71 500 000 81 900 000 (57 000 000; 95 000 000) 28 000 000 432 000 000
tests::messages_to_uninitialized_program_wait 381 000 000; +401.32% ❗ 76 000 000 84 210 000 (62 000 000; 93 000 000) 35 000 000 456 000 000
tests::no_redundant_gas_value_after_exiting 200 000 000; +220.00% ❗ 62 500 000 69 580 000 (46 000 000; 80 000 000) 17 000 000 372 000 000
tests::paused_program_keeps_id 339 000 000; +294.19% ‼️ 86 000 000 92 130 000 (67 500 000; 106 500 000) 44 000 000 288 000 000
tests::program_lifecycle_works 114 000 000; +90.00% ❗ 60 000 000 68 570 000 (46 000 000; 83 000 000) 22 000 000 280 000 000
tests::program_messages_to_paused_program_skipped 297 000 000; +157.14% ❗ 115 500 000 132 250 000 (93 000 000; 151 500 000) 48 000 000 468 000 000
tests::replies_to_paused_program_skipped 224 000 000; +204.76% ❗ 73 500 000 81 080 000 (57 500 000; 97 500 000) 29 000 000 232 000 000
tests::restrict_start_section 184 000 000; +237.61% ❗ 54 500 000 61 810 000 (43 500 000; 70 000 000) 17 000 000 296 000 000
tests::resume_program_works 645 000 000; +473.33% ‼️ 112 500 000 126 380 000 (94 000 000; 144 000 000) 48 000 000 407 000 000
tests::send_message_expected_failure 208 000 000; +252.54% ❗ 59 000 000 64 910 000 (45 000 000; 73 500 000) 21 000 000 291 000 000
tests::send_message_works 401 000 000; +609.73% ‼️ 56 500 000 64 140 000 (44 000 000; 76 000 000) 24 000 000 300 000 000
tests::send_reply_failure_to_claim_from_mailbox 210 000 000; +296.23% ‼️ 53 000 000 61 610 000 (44 000 000; 73 500 000) 20 000 000 187 000 000
tests::send_reply_value_claiming_works 209 000 000; +287.04% ❗ 54 000 000 62 350 000 (40 000 000; 76 500 000) 15 000 000 252 000 000
tests::send_reply_works 68 000 000; +13.33% ✔️ 60 000 000 66 320 000 (43 000 000; 80 000 000) 20 000 000 320 000 000
tests::spent_gas_to_reward_block_author_works 101 000 000; +69.75% ❗ 59 500 000 65 220 000 (41 000 000; 79 000 000) 22 000 000 241 000 000
tests::submit_program_expected_failure 403 000 000; +690.20% ‼️ 51 000 000 59 790 000 (41 500 000; 77 500 000) 12 000 000 244 000 000
tests::submit_program_fails_on_duplicate_id 66 000 000; +17.86% ✔️ 56 000 000 61 590 000 (40 500 000; 72 500 000) 15 000 000 208 000 000
tests::test_async_messages 1 281 000 000; +116.75% ‼️ 591 000 000 612 939 999 (552 500 000; 638 000 000) 475 000 000 1 245 000 000
tests::test_code_is_not_reset_within_program_submission 31 000 000; -38.00% ✔️ 50 000 000 59 470 000 (36 500 000; 72 000 000) 17 000 000 233 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 102 000 000; +96.15% ❗ 52 000 000 61 950 000 (41 000 000; 70 000 000) 16 000 000 281 000 000
tests::test_code_submission_pass 72 000 000; +24.14% ✔️ 58 000 000 64 210 000 (46 500 000; 76 000 000) 16 000 000 249 000 000
tests::test_create_program_duplicate 224 000 000; +64.71% ❗ 136 000 000 144 690 000 (108 500 000; 163 000 000) 60 000 000 456 000 000
tests::test_create_program_duplicate_in_one_execution 374 000 000; +285.57% ❗ 97 000 000 108 080 000 (77 000 000; 123 500 000) 46 000 000 436 000 000
tests::test_create_program_miscellaneous 499 000 000; +241.78% ‼️ 146 000 000 155 980 000 (117 000 000; 174 500 000) 76 000 000 396 000 000
tests::test_create_program_no_code_hash 812 000 000; +211.71% ‼️ 260 500 000 271 430 000 (208 500 000; 305 000 000) 156 000 000 681 000 000
tests::test_create_program_simple 883 000 000; +445.06% ‼️ 162 000 000 165 740 000 (132 500 000; 184 500 000) 81 000 000 334 000 000
tests::test_create_program_with_exceeding_value 104 000 000; +36.84% ❗ 76 000 000 81 220 000 (58 500 000; 97 000 000) 25 000 000 282 000 000
tests::test_create_program_with_value_lt_ed 450 000 000; +376.19% ‼️ 94 500 000 106 100 000 (75 500 000; 118 000 000) 39 000 000 400 000 000
tests::test_create_program_without_gas_works 257 000 000; +223.27% ‼️ 79 500 000 83 920 000 (55 000 000; 103 500 000) 22 000 000 223 000 000
tests::test_message_processing_for_non_existing_destination 169 000 000; +186.44% ‼️ 59 000 000 64 140 000 (43 000 000; 77 500 000) 14 000 000 164 000 000
tests::test_reply_to_terminated_program 219 000 000; +178.98% ‼️ 78 500 000 83 740 000 (65 000 000; 95 500 000) 30 000 000 215 000 000
tests::test_same_code_submission_fails 260 000 000; +326.23% ‼️ 61 000 000 68 140 000 (48 000 000; 78 500 000) 19 000 000 223 000 000
tests::test_two_contracts_composition_works 767 000 000; +227.78% ‼️ 234 000 000 245 930 000 (202 000 000; 277 500 000) 152 000 000 698 000 000
tests::uninitialized_program_should_accept_replies 586 000 000; +427.93% ‼️ 111 000 000 113 210 000 (88 000 000; 134 500 000) 49 000 000 234 000 000
tests::unstoppable_block_execution_works 144 000 000; +121.54% ❗ 65 000 000 68 990 000 (49 000 000; 84 000 000) 30 000 000 156 000 000
tests::unused_gas_released_back_works 81 000 000; +23.66% ✔️ 65 500 000 70 370 000 (50 000 000; 92 500 000) 15 000 000 176 000 000
tests::wake_messages_after_program_inited 759 000 000; +242.66% ‼️ 221 500 000 234 520 000 (190 000 000; 270 000 000) 138 000 000 465 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 138 000 000; +236.59% ‼️ 41 000 000 46 490 000 (29 000 000; 63 500 000) 8 000 000 138 000 000
tests::check_changed_pages_in_storage 117 000 000; +72.06% ❗ 68 000 000 73 810 000 (50 500 000; 90 000 000) 24 000 000 210 000 000
tests::debug_mode_works 135 000 000; +103.01% ❗ 66 500 000 68 700 000 (52 000 000; 84 000 000) 21 000 000 168 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 93 000 000; +129.63% ❗ 40 500 000 46 190 000 (28 000 000; 58 500 000) 6 000 000 156 000 000
tests::dequeued_impl_works_manually 405 000 000; +604.35% ‼️ 57 500 000 62 050 000 (40 500 000; 77 500 000) 21 000 000 177 000 000
tests::queue_processing_impl_works_manually 133 000 000; +125.42% ‼️ 59 000 000 60 530 000 (45 000 000; 78 000 000) 12 000 000 128 000 000
tests::queue_works 335 000 000; +514.68% ‼️ 54 500 000 58 710 000 (42 000 000; 70 500 000) 15 000 000 204 000 000
tests::sent_impl_works 134 000 000; +155.24% ❗ 52 500 000 55 500 000 (40 500 000; 70 500 000) 9 000 000 142 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 127 000 000; +238.67% ❗ 37 500 000 42 400 000 (27 500 000; 52 500 000) 8 000 000 151 000 000
tests::custom_fee_multiplier_updated_per_block 324 000 000; +489.09% ‼️ 55 000 000 58 220 000 (38 000 000; 71 000 000) 19 000 000 155 000 000
tests::fee_rounding_error_bounded_by_multiplier 152 000 000; +184.11% ‼️ 53 500 000 57 840 000 (38 500 000; 71 500 000) 18 000 000 146 000 000
tests::mq_size_affecting_fee_works 160 000 000; +196.30% ❗ 54 000 000 56 560 000 (39 000 000; 69 500 000) 13 000 000 170 000 000
tests::mq_size_not_affecting_fee_works 99 000 000; +80.00% ❗ 55 000 000 58 810 000 (42 000 000; 72 000 000) 13 000 000 132 000 000
tests::query_info_and_fee_details_work 235 000 000; +360.78% ‼️ 51 000 000 54 830 000 (39 500 000; 70 500 000) 15 000 000 126 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 71 000 000; +84.42% ❗ 38 500 000 41 800 000 (27 500 000; 51 000 000) 8 000 000 141 000 000
tests::pause_program_twice_fails 195 000 000; +239.13% ‼️ 57 500 000 58 470 000 (41 000 000; 74 000 000) 10 000 000 124 000 000
tests::pause_program_works 171 000 000; +165.12% ❗ 64 500 000 72 010 000 (50 000 000; 80 500 000) 26 000 000 217 000 000
tests::pause_terminated_program_fails 170 000 000; +217.76% ‼️ 53 500 000 56 440 000 (39 000 000; 70 500 000) 11 000 000 139 000 000
tests::pause_uninitialized_program_works 320 000 000; +370.59% ‼️ 68 000 000 72 520 000 (53 000 000; 89 000 000) 19 000 000 158 000 000
tests::resume_program_twice_fails 368 000 000; +322.99% ‼️ 87 000 000 93 170 000 (69 500 000; 110 000 000) 33 000 000 198 000 000
tests::resume_program_wrong_list_fails 203 000 000; +167.11% ‼️ 76 000 000 80 280 000 (62 000 000; 98 000 000) 32 000 000 176 000 000
tests::resume_program_wrong_memory_fails 147 000 000; +76.05% ❗ 83 500 000 84 400 000 (65 000 000; 97 500 000) 29 000 000 167 000 000
tests::resume_uninitialized_program_works 197 000 000; +144.72% ‼️ 80 500 000 86 850 000 (67 500 000; 100 500 000) 34 000 000 188 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 144 000 000; +255.56% ❗ 40 500 000 45 500 000 (28 500 000; 55 000 000) 5 000 000 147 000 000
tests::dust_discarded_with_noop 155 000 000; +198.08% ❗ 52 000 000 60 260 000 (41 000 000; 72 500 000) 15 000 000 167 000 000
tests::external_submitter_gets_rewarded 156 000 000; +176.11% ❗ 56 500 000 58 430 000 (41 000 000; 69 000 000) 8 000 000 170 000 000
tests::gas_properly_handled_for_trap_replies 219 000 000; +325.24% ‼️ 51 500 000 59 140 000 (45 000 000; 69 000 000) 20 000 000 212 000 000
tests::ocw_double_charge 142 000 000; +162.96% ❗ 54 000 000 59 230 000 (43 000 000; 69 500 000) 16 000 000 164 000 000
tests::ocw_interval_maintained 179 000 000; +244.23% ❗ 52 000 000 57 270 000 (40 500 000; 67 500 000) 15 000 000 240 000 000
tests::ocw_interval_stretches_for_large_wait_list 112 000 000; +98.23% ❗ 56 500 000 61 190 000 (44 000 000; 73 500 000) 16 000 000 232 000 000
tests::ocw_overlapping_prevented 160 000 000; +240.43% ❗ 47 000 000 51 040 000 (35 500 000; 63 000 000) 11 000 000 163 000 000
tests::rent_charge_works 84 000 000; +52.73% ❗ 55 000 000 57 990 000 (41 500 000; 69 000 000) 15 000 000 188 000 000
tests::trap_reply_message_is_sent 97 000 000; +100.00% ❗ 48 500 000 51 560 000 (34 500 000; 65 000 000) 11 000 000 167 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 285 335 764 849; +76.23% ‼️ 161 910 424 706 162 009 452 179 (161 545 795 744; 162 441 746 614) 160 060 214 591 164 166 272 559

name = Async RwLock

name current median average lower/upper quartile min max
check readers 373 107 576; +758.15% ‼️ 43 478 323 50 203 472 (40 231 618; 52 901 472) 32 119 360 132 212 390
forever lock 572 972 632; +808.07% ‼️ 63 097 560 73 038 566 (57 314 439; 81 273 128) 43 517 038 138 924 032
read while writing 1 011 564 815; +784.68% ‼️ 114 341 870 126 349 770 (104 299 957; 144 618 894) 82 172 294 202 813 686
rwlock wide 1 955 614 284; +707.35% ‼️ 242 225 411 235 412 617 (212 023 856; 254 037 224) 166 985 691 299 455 235
write while reading 1 338 920 086; +831.90% ‼️ 143 676 384 148 558 865 (126 414 156; 170 449 517) 93 327 347 217 857 357

name = Async init

name current median average lower/upper quartile min max
approved pong 23 445 738 892; +37.95% ‼️ 16 996 204 013 17 001 130 970 (16 878 328 066; 17 112 698 226) 16 530 296 321 17 546 740 437

name = Async-await

name current median average lower/upper quartile min max
normal 638 814 055; +732.12% ‼️ 76 769 336 75 119 453 (66 701 412; 83 215 321) 33 587 295 107 441 595
panic 643 235 557; +1071.46% ‼️ 54 909 109 63 886 643 (46 268 397; 81 956 064) 32 810 775 112 367 114

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 1 024 607 118; +661.82% ‼️ 134 493 964 124 331 253 (106 091 416; 142 205 852) 67 518 116 167 433 988

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 19 600 675 870; +108.36% ‼️ 9 406 959 568 9 407 296 555 (9 284 042 798; 9 545 963 471) 8 931 446 959 9 761 869 767
2 of 3; bob & eve 19 231 571 259; +105.10% ‼️ 9 376 470 210 9 389 847 383 (9 263 447 718; 9 492 187 016) 9 066 369 995 9 927 494 134
2 of 3; eve & alice 19 241 840 610; +105.67% ‼️ 9 355 589 199 9 377 069 634 (9 252 890 375; 9 487 604 436) 9 027 120 575 9 823 224 997
2 of 3; eve doesn't answer, alice replies with incorrect payload 16 373 029 079; +77.72% ‼️ 9 212 704 251 9 223 298 666 (9 096 892 296; 9 344 730 425) 8 807 757 844 9 639 310 619
2 of 3; no replies 12 352 228 258; +36.72% ‼️ 9 034 864 443 9 042 139 421 (8 928 768 344; 9 149 357 751) 8 637 451 241 9 576 043 232
Single signatory & zero threshold 12 724 195 805; +37.35% ‼️ 9 263 877 358 9 264 588 476 (9 140 428 775; 9 372 373 135) 8 915 580 717 9 852 789 817
Three signatories & redundand threshold 19 678 529 705; +106.84% ‼️ 9 513 802 282 9 507 763 274 (9 367 144 710; 9 642 668 048) 9 056 699 337 9 918 060 176
Three signatories; Bob replies with incorrect signature 16 911 364 592; +82.20% ‼️ 9 281 813 711 9 266 468 538 (9 144 821 153; 9 358 119 725) 8 847 448 134 9 655 434 237
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 14 664 635 705; +58.41% ‼️ 9 257 211 862 9 242 199 451 (9 140 815 873; 9 351 825 701) 8 848 527 886 9 670 940 302

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 6 090 466 832; +22.93% ‼️ 4 954 360 228 4 930 489 941 (4 812 992 819; 5 081 024 861) 4 380 240 639 5 288 291 764
correct signature but for another message 6 943 379 313; +35.28% ‼️ 5 132 629 408 5 091 365 689 (4 968 528 171; 5 227 885 814) 4 613 448 752 5 428 349 228
no reply 6 124 889 615; +24.28% ‼️ 4 928 398 977 4 902 707 450 (4 759 879 253; 5 070 603 691) 4 409 581 785 5 254 093 296
signed message 7 101 005 087; +37.44% ‼️ 5 166 535 242 5 120 827 531 (5 006 276 710; 5 291 362 523) 4 506 104 077 5 471 140 826

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 693 780 363; +698.29% ‼️ 86 908 383 86 175 616 (76 460 909; 98 584 417) 45 768 976 118 859 443

name = Decoder

name current median average lower/upper quartile min max
decoder 559 728 061; +804.86% ‼️ 61 857 656 55 516 163 (32 727 045; 73 451 198) 25 037 294 97 868 602

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 442 702 518; +674.94% ‼️ 315 212 600 303 686 726 (266 808 513; 340 339 413) 197 367 987 405 410 079
join 1 517 288 014; +544.07% ‼️ 235 578 155 251 584 225 (219 410 561; 271 662 257) 181 505 787 376 453 460
select 1 846 964 330; +664.72% ‼️ 241 522 681 255 082 783 (215 955 887; 289 192 334) 168 703 453 379 380 958

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 772 752 105; +619.85% ‼️ 246 266 640 236 507 589 (202 054 077; 265 815 425) 161 050 160 299 053 848

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 480 620 356; +460.99% ‼️ 85 672 908 85 920 472 (75 948 811; 96 240 545) 47 865 644 114 583 598

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 511 409 156; +699.67% ‼️ 63 952 412 59 548 061 (28 949 991; 83 616 577) 17 796 183 109 959 545

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 22 333 260 580; +39.99% ‼️ 15 953 425 697 15 974 554 496 (15 853 184 574; 16 073 660 761) 15 534 321 215 16 480 580 336

name = Multiping

name current median average lower/upper quartile min max
multiping 551 695 643; +722.24% ‼️ 67 096 347 62 562 686 (42 622 429; 79 320 752) 23 980 833 99 263 912

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 421 026 575; +1193.45% ‼️ 32 550 719 41 484 142 (24 835 569; 61 200 519) 16 473 728 85 877 619
ping-pong wgas 638 916 509; +1287.16% ‼️ 46 059 188 51 819 009 (38 895 985; 57 827 175) 28 795 384 102 243 674

name = Program_id test

name current median average lower/upper quartile min max
program_id 457 752 036; +612.84% ‼️ 64 215 631 63 096 076 (55 309 094; 70 321 806) 24 837 034 92 236 276

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 402 715 038; +602.62% ‼️ 57 316 169 65 819 728 (43 591 687; 93 327 516) 31 713 686 124 519 186
state-saving 389 293 823; +739.10% ‼️ 46 394 177 52 859 685 (41 006 021; 55 725 970) 32 236 018 105 283 755

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 571 330 133; +736.13% ‼️ 68 330 513 65 495 936 (57 124 016; 76 408 332) 25 716 079 96 721 354
Try to re-init existing program 804 255 287; +835.47% ‼️ 85 973 393 82 241 977 (59 701 808; 101 820 450) 42 549 707 125 945 332

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 344 133 379; +1455.32% ‼️ 22 126 151 28 379 325 (16 062 933; 41 223 714) 11 993 198 60 193 406

name = Wait test

name current median average lower/upper quartile min max
wait 703 238 480; +1014.33% ‼️ 63 108 413 70 964 726 (52 956 977; 95 570 859) 37 491 218 115 570 730

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 1 174 390 990; +328.33% ‼️ 274 177 358 264 915 149 (233 124 543; 298 061 744) 162 057 191 371 566 690

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 709 888 175; +636.94% ‼️ 96 329 164 94 599 591 (82 991 972; 103 564 539) 72 004 037 133 449 073

name = guestbook test

name current median average lower/upper quartile min max
guestbook 11 849 774 862; +33.23% ‼️ 8 894 372 916 8 898 596 110 (8 747 041 943; 9 031 296 136) 8 534 357 403 9 452 015 756

name = gui test

name current median average lower/upper quartile min max
gui 15 748 784 997; +37.71% ‼️ 11 436 126 676 11 453 762 190 (11 345 505 830; 11 592 987 293) 11 118 993 971 11 956 136 145
88c16b5
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 85 326 000 000; +3347.52% ❗ 2 475 000 000 3 976 609 999 (2 445 500 000; 2 510 000 000) 2 404 000 000 133 201 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 36 000 000; +50.00% ❗ 24 000 000 27 650 000 (18 000 000; 30 000 000) 5 000 000 231 000 000
tests::all_keys_are_cleared 60 000 000; +66.67% ❗ 36 000 000 40 610 000 (30 000 000; 42 500 000) 9 000 000 232 000 000
tests::gas_free_after_consumed 30 000 000; -11.76% ✔️ 34 000 000 37 680 000 (25 500 000; 41 000 000) 10 000 000 184 000 000
tests::limit_vs_origin 39 000 000; +21.88% ✔️ 32 000 000 38 640 000 (24 000 000; 42 500 000) 9 000 000 256 000 000
tests::long_chain 40 000 000; +23.08% ✔️ 32 500 000 40 120 000 (23 000 000; 41 000 000) 11 000 000 460 000 000
tests::simple_value_tree 21 000 000; -34.38% ✔️ 32 000 000 38 760 000 (24 000 000; 44 000 000) 7 000 000 216 000 000
tests::split_with_no_value 39 000 000; +21.88% ✔️ 32 000 000 38 700 000 (22 000 000; 42 500 000) 9 000 000 432 000 000
tests::sub_nodes_tree 24 000 000; -29.41% ✔️ 34 000 000 37 650 000 (25 500 000; 44 000 000) 14 000 000 181 000 000
tests::sub_nodes_tree_with_spends 21 000 000; -33.33% ✔️ 31 500 000 39 790 000 (26 000 000; 41 000 000) 11 000 000 336 000 000
tests::subtree_gas_limit_remains_intact 50 000 000; +36.99% ❗ 36 500 000 43 460 000 (26 000 000; 46 000 000) 7 000 000 336 000 000
tests::value_tree_known_errors 45 000 000; +34.33% ❗ 33 500 000 39 700 000 (24 500 000; 45 000 000) 10 000 000 324 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 14 000 000; -42.86% ✔️ 24 500 000 28 900 000 (16 500 000; 33 500 000) 5 000 000 172 000 000
schedule::test::print_test_schedule 21 000 000; -10.64% ✔️ 23 500 000 31 970 000 (15 000 000; 32 000 000) 6 000 000 376 000 000
tests::block_gas_limit_works 36 000 000; -18.18% ✔️ 44 000 000 55 640 000 (31 500 000; 61 500 000) 17 000 000 356 000 000
tests::call_forbidden_function 47 000 000; +11.90% ✔️ 42 000 000 50 720 000 (29 000 000; 61 000 000) 13 000 000 292 000 000
tests::cascading_messages_with_value_do_not_overcharge 302 000 000; +29.06% ❗ 234 000 000 249 750 000 (206 500 000; 268 000 000) 144 000 000 648 000 000
tests::claim_value_from_mailbox_works 28 000 000; -41.67% ✔️ 48 000 000 53 620 000 (35 500 000; 59 000 000) 18 000 000 292 000 000
tests::defer_program_initialization 146 000 000; +64.04% ❗ 89 000 000 108 570 000 (76 500 000; 119 000 000) 53 000 000 603 000 000
tests::distributor_distribute 140 000 000; +44.33% ❗ 97 000 000 102 500 000 (73 000 000; 118 500 000) 45 000 000 467 000 000
tests::distributor_initialize 55 000 000; -21.99% ✔️ 70 500 000 80 350 000 (56 000 000; 85 500 000) 30 000 000 408 000 000
tests::events_logging_works 102 000 000; +108.16% ❗ 49 000 000 58 200 000 (40 000 000; 66 000 000) 16 000 000 196 000 000
tests::exit_handle 44 000 000; -15.38% ✔️ 52 000 000 64 290 000 (40 000 000; 77 500 000) 18 000 000 452 000 000
tests::exit_init 175 000 000; +125.81% ❗ 77 500 000 85 040 000 (61 500 000; 92 500 000) 36 000 000 464 000 000
tests::gas_spent_precalculated 120 000 000; +130.77% ❗ 52 000 000 60 870 000 (41 500 000; 65 500 000) 20 000 000 348 000 000
tests::gas_spent_vs_balance 541 000 000; +389.59% ‼️ 110 500 000 123 730 000 (91 500 000; 132 500 000) 60 000 000 520 000 000
tests::init_message_logging_works 161 000 000; +182.46% ❗ 57 000 000 63 780 000 (45 000 000; 71 000 000) 18 000 000 448 000 000
tests::init_wait_reply_exit_cleaned_storage 363 000 000; +210.26% ❗ 117 000 000 125 030 000 (97 000 000; 132 000 000) 70 000 000 675 000 000
tests::lazy_pages 97 000 000; +64.41% ❗ 59 000 000 64 890 000 (44 000 000; 77 500 000) 23 000 000 260 000 000
tests::mailbox_works 84 000 000; +36.59% ❗ 61 500 000 68 710 000 (47 000 000; 78 000 000) 19 000 000 296 000 000
tests::memory_access_cases 248 000 000; +320.34% ❗ 59 000 000 70 710 000 (48 000 000; 88 000 000) 25 000 000 396 000 000
tests::messages_processing_works 48 000 000; -22.58% ✔️ 62 000 000 66 130 000 (43 500 000; 79 000 000) 28 000 000 244 000 000
tests::messages_to_paused_program_skipped 195 000 000; +172.73% ❗ 71 500 000 81 900 000 (57 000 000; 95 000 000) 28 000 000 432 000 000
tests::messages_to_uninitialized_program_wait 40 000 000; -47.37% ✔️ 76 000 000 84 210 000 (62 000 000; 93 000 000) 35 000 000 456 000 000
tests::no_redundant_gas_value_after_exiting 102 000 000; +63.20% ❗ 62 500 000 69 580 000 (46 000 000; 80 000 000) 17 000 000 372 000 000
tests::paused_program_keeps_id 196 000 000; +127.91% ❗ 86 000 000 92 130 000 (67 500 000; 106 500 000) 44 000 000 288 000 000
tests::program_lifecycle_works 213 000 000; +255.00% ❗ 60 000 000 68 570 000 (46 000 000; 83 000 000) 22 000 000 280 000 000
tests::program_messages_to_paused_program_skipped 344 000 000; +197.84% ❗ 115 500 000 132 250 000 (93 000 000; 151 500 000) 48 000 000 468 000 000
tests::replies_to_paused_program_skipped 104 000 000; +41.50% ❗ 73 500 000 81 080 000 (57 500 000; 97 500 000) 29 000 000 232 000 000
tests::restrict_start_section 275 000 000; +404.59% ❗ 54 500 000 61 810 000 (43 500 000; 70 000 000) 17 000 000 296 000 000
tests::resume_program_works 246 000 000; +118.67% ❗ 112 500 000 126 380 000 (94 000 000; 144 000 000) 48 000 000 407 000 000
tests::send_message_expected_failure 236 000 000; +300.00% ❗ 59 000 000 64 910 000 (45 000 000; 73 500 000) 21 000 000 291 000 000
tests::send_message_works 229 000 000; +305.31% ❗ 56 500 000 64 140 000 (44 000 000; 76 000 000) 24 000 000 300 000 000
tests::send_reply_failure_to_claim_from_mailbox 129 000 000; +143.40% ❗ 53 000 000 61 610 000 (44 000 000; 73 500 000) 20 000 000 187 000 000
tests::send_reply_value_claiming_works 171 000 000; +216.67% ❗ 54 000 000 62 350 000 (40 000 000; 76 500 000) 15 000 000 252 000 000
tests::send_reply_works 216 000 000; +260.00% ❗ 60 000 000 66 320 000 (43 000 000; 80 000 000) 20 000 000 320 000 000
tests::spent_gas_to_reward_block_author_works 334 000 000; +461.34% ‼️ 59 500 000 65 220 000 (41 000 000; 79 000 000) 22 000 000 241 000 000
tests::submit_program_expected_failure 144 000 000; +182.35% ❗ 51 000 000 59 790 000 (41 500 000; 77 500 000) 12 000 000 244 000 000
tests::submit_program_fails_on_duplicate_id 95 000 000; +69.64% ❗ 56 000 000 61 590 000 (40 500 000; 72 500 000) 15 000 000 208 000 000
tests::test_async_messages 2 290 000 000; +287.48% ‼️ 591 000 000 612 939 999 (552 500 000; 638 000 000) 475 000 000 1 245 000 000
tests::test_code_is_not_reset_within_program_submission 120 000 000; +140.00% ❗ 50 000 000 59 470 000 (36 500 000; 72 000 000) 17 000 000 233 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 60 000 000; +15.38% ✔️ 52 000 000 61 950 000 (41 000 000; 70 000 000) 16 000 000 281 000 000
tests::test_code_submission_pass 95 000 000; +63.79% ❗ 58 000 000 64 210 000 (46 500 000; 76 000 000) 16 000 000 249 000 000
tests::test_create_program_duplicate 301 000 000; +121.32% ❗ 136 000 000 144 690 000 (108 500 000; 163 000 000) 60 000 000 456 000 000
tests::test_create_program_duplicate_in_one_execution 110 000 000; +13.40% ✔️ 97 000 000 108 080 000 (77 000 000; 123 500 000) 46 000 000 436 000 000
tests::test_create_program_miscellaneous 675 000 000; +362.33% ‼️ 146 000 000 155 980 000 (117 000 000; 174 500 000) 76 000 000 396 000 000
tests::test_create_program_no_code_hash 621 000 000; +138.39% ❗ 260 500 000 271 430 000 (208 500 000; 305 000 000) 156 000 000 681 000 000
tests::test_create_program_simple 628 000 000; +287.65% ‼️ 162 000 000 165 740 000 (132 500 000; 184 500 000) 81 000 000 334 000 000
tests::test_create_program_with_exceeding_value 137 000 000; +80.26% ❗ 76 000 000 81 220 000 (58 500 000; 97 000 000) 25 000 000 282 000 000
tests::test_create_program_with_value_lt_ed 152 000 000; +60.85% ❗ 94 500 000 106 100 000 (75 500 000; 118 000 000) 39 000 000 400 000 000
tests::test_create_program_without_gas_works 146 000 000; +83.65% ❗ 79 500 000 83 920 000 (55 000 000; 103 500 000) 22 000 000 223 000 000
tests::test_message_processing_for_non_existing_destination 149 000 000; +152.54% ❗ 59 000 000 64 140 000 (43 000 000; 77 500 000) 14 000 000 164 000 000
tests::test_reply_to_terminated_program 225 000 000; +186.62% ‼️ 78 500 000 83 740 000 (65 000 000; 95 500 000) 30 000 000 215 000 000
tests::test_same_code_submission_fails 136 000 000; +122.95% ❗ 61 000 000 68 140 000 (48 000 000; 78 500 000) 19 000 000 223 000 000
tests::test_two_contracts_composition_works 514 000 000; +119.66% ❗ 234 000 000 245 930 000 (202 000 000; 277 500 000) 152 000 000 698 000 000
tests::uninitialized_program_should_accept_replies 169 000 000; +52.25% ❗ 111 000 000 113 210 000 (88 000 000; 134 500 000) 49 000 000 234 000 000
tests::unstoppable_block_execution_works 75 000 000; +15.38% ✔️ 65 000 000 68 990 000 (49 000 000; 84 000 000) 30 000 000 156 000 000
tests::unused_gas_released_back_works 98 000 000; +49.62% ❗ 65 500 000 70 370 000 (50 000 000; 92 500 000) 15 000 000 176 000 000
tests::wake_messages_after_program_inited 697 000 000; +214.67% ‼️ 221 500 000 234 520 000 (190 000 000; 270 000 000) 138 000 000 465 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 58 000 000; +41.46% ✔️ 41 000 000 46 490 000 (29 000 000; 63 500 000) 8 000 000 138 000 000
tests::check_changed_pages_in_storage 63 000 000; -7.35% ✔️ 68 000 000 73 810 000 (50 500 000; 90 000 000) 24 000 000 210 000 000
tests::debug_mode_works 132 000 000; +98.50% ❗ 66 500 000 68 700 000 (52 000 000; 84 000 000) 21 000 000 168 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 40 000 000; -1.23% ✔️ 40 500 000 46 190 000 (28 000 000; 58 500 000) 6 000 000 156 000 000
tests::dequeued_impl_works_manually 197 000 000; +242.61% ‼️ 57 500 000 62 050 000 (40 500 000; 77 500 000) 21 000 000 177 000 000
tests::queue_processing_impl_works_manually 98 000 000; +66.10% ❗ 59 000 000 60 530 000 (45 000 000; 78 000 000) 12 000 000 128 000 000
tests::queue_works 105 000 000; +92.66% ❗ 54 500 000 58 710 000 (42 000 000; 70 500 000) 15 000 000 204 000 000
tests::sent_impl_works 160 000 000; +204.76% ‼️ 52 500 000 55 500 000 (40 500 000; 70 500 000) 9 000 000 142 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 104 000 000; +177.33% ❗ 37 500 000 42 400 000 (27 500 000; 52 500 000) 8 000 000 151 000 000
tests::custom_fee_multiplier_updated_per_block 165 000 000; +200.00% ‼️ 55 000 000 58 220 000 (38 000 000; 71 000 000) 19 000 000 155 000 000
tests::fee_rounding_error_bounded_by_multiplier 236 000 000; +341.12% ‼️ 53 500 000 57 840 000 (38 500 000; 71 500 000) 18 000 000 146 000 000
tests::mq_size_affecting_fee_works 255 000 000; +372.22% ‼️ 54 000 000 56 560 000 (39 000 000; 69 500 000) 13 000 000 170 000 000
tests::mq_size_not_affecting_fee_works 228 000 000; +314.55% ‼️ 55 000 000 58 810 000 (42 000 000; 72 000 000) 13 000 000 132 000 000
tests::query_info_and_fee_details_work 256 000 000; +401.96% ‼️ 51 000 000 54 830 000 (39 500 000; 70 500 000) 15 000 000 126 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 120 000 000; +211.69% ❗ 38 500 000 41 800 000 (27 500 000; 51 000 000) 8 000 000 141 000 000
tests::pause_program_twice_fails 132 000 000; +129.57% ‼️ 57 500 000 58 470 000 (41 000 000; 74 000 000) 10 000 000 124 000 000
tests::pause_program_works 96 000 000; +48.84% ❗ 64 500 000 72 010 000 (50 000 000; 80 500 000) 26 000 000 217 000 000
tests::pause_terminated_program_fails 57 000 000; +6.54% ✔️ 53 500 000 56 440 000 (39 000 000; 70 500 000) 11 000 000 139 000 000
tests::pause_uninitialized_program_works 49 000 000; -27.94% ✔️ 68 000 000 72 520 000 (53 000 000; 89 000 000) 19 000 000 158 000 000
tests::resume_program_twice_fails 123 000 000; +41.38% ❗ 87 000 000 93 170 000 (69 500 000; 110 000 000) 33 000 000 198 000 000
tests::resume_program_wrong_list_fails 92 000 000; +21.05% ✔️ 76 000 000 80 280 000 (62 000 000; 98 000 000) 32 000 000 176 000 000
tests::resume_program_wrong_memory_fails 95 000 000; +13.77% ✔️ 83 500 000 84 400 000 (65 000 000; 97 500 000) 29 000 000 167 000 000
tests::resume_uninitialized_program_works 159 000 000; +97.52% ❗ 80 500 000 86 850 000 (67 500 000; 100 500 000) 34 000 000 188 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 56 000 000; +38.27% ❗ 40 500 000 45 500 000 (28 500 000; 55 000 000) 5 000 000 147 000 000
tests::dust_discarded_with_noop 80 000 000; +53.85% ❗ 52 000 000 60 260 000 (41 000 000; 72 500 000) 15 000 000 167 000 000
tests::external_submitter_gets_rewarded 80 000 000; +41.59% ❗ 56 500 000 58 430 000 (41 000 000; 69 000 000) 8 000 000 170 000 000
tests::gas_properly_handled_for_trap_replies 87 000 000; +68.93% ❗ 51 500 000 59 140 000 (45 000 000; 69 000 000) 20 000 000 212 000 000
tests::ocw_double_charge 79 000 000; +46.30% ❗ 54 000 000 59 230 000 (43 000 000; 69 500 000) 16 000 000 164 000 000
tests::ocw_interval_maintained 90 000 000; +73.08% ❗ 52 000 000 57 270 000 (40 500 000; 67 500 000) 15 000 000 240 000 000
tests::ocw_interval_stretches_for_large_wait_list 61 000 000; +7.96% ✔️ 56 500 000 61 190 000 (44 000 000; 73 500 000) 16 000 000 232 000 000
tests::ocw_overlapping_prevented 201 000 000; +327.66% ‼️ 47 000 000 51 040 000 (35 500 000; 63 000 000) 11 000 000 163 000 000
tests::rent_charge_works 61 000 000; +10.91% ✔️ 55 000 000 57 990 000 (41 500 000; 69 000 000) 15 000 000 188 000 000
tests::trap_reply_message_is_sent 183 000 000; +277.32% ‼️ 48 500 000 51 560 000 (34 500 000; 65 000 000) 11 000 000 167 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 400 057 753 349; +147.09% ‼️ 161 910 424 706 162 009 452 179 (161 545 795 744; 162 441 746 614) 160 060 214 591 164 166 272 559

name = Async RwLock

name current median average lower/upper quartile min max
check readers 367 095 048; +744.32% ‼️ 43 478 323 50 203 472 (40 231 618; 52 901 472) 32 119 360 132 212 390
forever lock 492 939 567; +681.23% ‼️ 63 097 560 73 038 566 (57 314 439; 81 273 128) 43 517 038 138 924 032
read while writing 1 159 994 323; +914.50% ‼️ 114 341 870 126 349 770 (104 299 957; 144 618 894) 82 172 294 202 813 686
rwlock wide 6 925 536 381; +2759.13% ‼️ 242 225 411 235 412 617 (212 023 856; 254 037 224) 166 985 691 299 455 235
write while reading 1 997 659 994; +1290.39% ‼️ 143 676 384 148 558 865 (126 414 156; 170 449 517) 93 327 347 217 857 357

name = Async init

name current median average lower/upper quartile min max
approved pong 24 060 518 847; +41.56% ‼️ 16 996 204 013 17 001 130 970 (16 878 328 066; 17 112 698 226) 16 530 296 321 17 546 740 437

name = Async-await

name current median average lower/upper quartile min max
normal 2 574 292 709; +3253.28% ‼️ 76 769 336 75 119 453 (66 701 412; 83 215 321) 33 587 295 107 441 595
panic 406 149 521; +639.68% ‼️ 54 909 109 63 886 643 (46 268 397; 81 956 064) 32 810 775 112 367 114

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 5 303 588 472; +3843.37% ‼️ 134 493 964 124 331 253 (106 091 416; 142 205 852) 67 518 116 167 433 988

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 23 558 501 296; +150.44% ‼️ 9 406 959 568 9 407 296 555 (9 284 042 798; 9 545 963 471) 8 931 446 959 9 761 869 767
2 of 3; bob & eve 23 657 516 628; +152.31% ‼️ 9 376 470 210 9 389 847 383 (9 263 447 718; 9 492 187 016) 9 066 369 995 9 927 494 134
2 of 3; eve & alice 23 696 744 771; +153.29% ‼️ 9 355 589 199 9 377 069 634 (9 252 890 375; 9 487 604 436) 9 027 120 575 9 823 224 997
2 of 3; eve doesn't answer, alice replies with incorrect payload 19 410 134 835; +110.69% ‼️ 9 212 704 251 9 223 298 666 (9 096 892 296; 9 344 730 425) 8 807 757 844 9 639 310 619
2 of 3; no replies 16 646 458 217; +84.25% ‼️ 9 034 864 443 9 042 139 421 (8 928 768 344; 9 149 357 751) 8 637 451 241 9 576 043 232
Single signatory & zero threshold 20 976 197 589; +126.43% ‼️ 9 263 877 358 9 264 588 476 (9 140 428 775; 9 372 373 135) 8 915 580 717 9 852 789 817
Three signatories & redundand threshold 19 945 378 108; +109.65% ‼️ 9 513 802 282 9 507 763 274 (9 367 144 710; 9 642 668 048) 9 056 699 337 9 918 060 176
Three signatories; Bob replies with incorrect signature 16 006 788 948; +72.45% ‼️ 9 281 813 711 9 266 468 538 (9 144 821 153; 9 358 119 725) 8 847 448 134 9 655 434 237
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 17 177 187 182; +85.55% ‼️ 9 257 211 862 9 242 199 451 (9 140 815 873; 9 351 825 701) 8 848 527 886 9 670 940 302

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 6 357 178 937; +28.31% ‼️ 4 954 360 228 4 930 489 941 (4 812 992 819; 5 081 024 861) 4 380 240 639 5 288 291 764
correct signature but for another message 6 641 097 630; +29.39% ‼️ 5 132 629 408 5 091 365 689 (4 968 528 171; 5 227 885 814) 4 613 448 752 5 428 349 228
no reply 6 576 839 282; +33.45% ‼️ 4 928 398 977 4 902 707 450 (4 759 879 253; 5 070 603 691) 4 409 581 785 5 254 093 296
signed message 7 095 086 149; +37.33% ‼️ 5 166 535 242 5 120 827 531 (5 006 276 710; 5 291 362 523) 4 506 104 077 5 471 140 826

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 688 182 192; +691.85% ‼️ 86 908 383 86 175 616 (76 460 909; 98 584 417) 45 768 976 118 859 443

name = Decoder

name current median average lower/upper quartile min max
decoder 3 587 041 885; +5698.86% ‼️ 61 857 656 55 516 163 (32 727 045; 73 451 198) 25 037 294 97 868 602

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 7 257 638 569; +2202.46% ‼️ 315 212 600 303 686 726 (266 808 513; 340 339 413) 197 367 987 405 410 079
join 3 219 221 987; +1266.52% ‼️ 235 578 155 251 584 225 (219 410 561; 271 662 257) 181 505 787 376 453 460
select 3 403 973 108; +1309.38% ‼️ 241 522 681 255 082 783 (215 955 887; 289 192 334) 168 703 453 379 380 958

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 3 291 829 519; +1236.69% ‼️ 246 266 640 236 507 589 (202 054 077; 265 815 425) 161 050 160 299 053 848

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 3 876 777 064; +4425.09% ‼️ 85 672 908 85 920 472 (75 948 811; 96 240 545) 47 865 644 114 583 598

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 1 525 168 422; +2284.85% ‼️ 63 952 412 59 548 061 (28 949 991; 83 616 577) 17 796 183 109 959 545

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 23 035 106 233; +44.39% ‼️ 15 953 425 697 15 974 554 496 (15 853 184 574; 16 073 660 761) 15 534 321 215 16 480 580 336

name = Multiping

name current median average lower/upper quartile min max
multiping 3 385 038 283; +4945.04% ‼️ 67 096 347 62 562 686 (42 622 429; 79 320 752) 23 980 833 99 263 912

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 3 811 857 540; +11610.52% ‼️ 32 550 719 41 484 142 (24 835 569; 61 200 519) 16 473 728 85 877 619
ping-pong wgas 3 880 050 621; +8324.05% ‼️ 46 059 188 51 819 009 (38 895 985; 57 827 175) 28 795 384 102 243 674

name = Program_id test

name current median average lower/upper quartile min max
program_id 1 199 607 571; +1768.09% ‼️ 64 215 631 63 096 076 (55 309 094; 70 321 806) 24 837 034 92 236 276

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 3 526 880 420; +6053.38% ‼️ 57 316 169 65 819 728 (43 591 687; 93 327 516) 31 713 686 124 519 186
state-saving 3 468 368 635; +7375.87% ‼️ 46 394 177 52 859 685 (41 006 021; 55 725 970) 32 236 018 105 283 755

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 3 189 951 054; +4568.41% ‼️ 68 330 513 65 495 936 (57 124 016; 76 408 332) 25 716 079 96 721 354
Try to re-init existing program 671 677 554; +681.26% ‼️ 85 973 393 82 241 977 (59 701 808; 101 820 450) 42 549 707 125 945 332

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 260 581 455; +1077.71% ‼️ 22 126 151 28 379 325 (16 062 933; 41 223 714) 11 993 198 60 193 406

name = Wait test

name current median average lower/upper quartile min max
wait 3 816 202 572; +5947.06% ‼️ 63 108 413 70 964 726 (52 956 977; 95 570 859) 37 491 218 115 570 730

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 7 452 824 606; +2618.25% ‼️ 274 177 358 264 915 149 (233 124 543; 298 061 744) 162 057 191 371 566 690

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 4 071 788 746; +4126.95% ‼️ 96 329 164 94 599 591 (82 991 972; 103 564 539) 72 004 037 133 449 073

name = guestbook test

name current median average lower/upper quartile min max
guestbook 11 748 234 519; +32.09% ‼️ 8 894 372 916 8 898 596 110 (8 747 041 943; 9 031 296 136) 8 534 357 403 9 452 015 756

name = gui test

name current median average lower/upper quartile min max
gui 18 218 954 430; +59.31% ‼️ 11 436 126 676 11 453 762 190 (11 345 505 830; 11 592 987 293) 11 118 993 971 11 956 136 145

@codecov
Copy link

codecov bot commented Jun 14, 2022

Codecov Report

Merging #1051 (bdf5b29) into master (8dc145c) will decrease coverage by 0.29%.
The diff coverage is 65.38%.

@@            Coverage Diff             @@
##           master    #1051      +/-   ##
==========================================
- Coverage   74.42%   74.13%   -0.30%     
==========================================
  Files          90       90              
  Lines        8786     8675     -111     
==========================================
- Hits         6539     6431     -108     
+ Misses       2247     2244       -3     
Impacted Files Coverage Δ
pallets/gear/rpc/runtime-api/src/lib.rs 0.00% <0.00%> (ø)
pallets/gear/rpc/src/lib.rs 0.00% <0.00%> (ø)
pallets/gear/src/manager.rs 75.97% <ø> (-7.77%) ⬇️
pallets/gear/src/mock.rs 72.00% <ø> (+3.25%) ⬆️
pallets/gear/src/tests.rs 94.95% <ø> (ø)
pallets/usage/src/offchain.rs 69.76% <ø> (ø)
pallets/gear/src/lib.rs 60.47% <78.70%> (+1.90%) ⬆️
core-processor/src/ext.rs 88.52% <0.00%> (-2.05%) ⬇️
core/src/gas.rs 90.54% <0.00%> (-1.36%) ⬇️
... and 9 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8dc145c...bdf5b29. Read the comment docs.

@gshep gshep changed the title Draft: refactor get_gas_spent Refactor get_gas_spent Jun 15, 2022
@gshep gshep added A0-pleasereview PR is ready to be reviewed by the team D2-node Gear Node labels Jun 15, 2022
@gshep gshep self-assigned this Jun 15, 2022
@gshep gshep requested review from breathx and shamilsan June 15, 2022 05:53
@gshep gshep marked this pull request as ready for review June 15, 2022 05:53
pallets/gear/src/lib.rs Outdated Show resolved Hide resolved
pallets/gear/src/lib.rs Outdated Show resolved Hide resolved
Copy link
Contributor

@shamilsan shamilsan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome work 🔥
We've discussed returning an error when trying to send gas to the user mailbox but as I see you calc it anyway.

@gshep gshep requested review from breathx and techraed June 16, 2022 16:27
Copy link
Member

@breathx breathx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glad to see such improvements 👍

pallets/gear/src/lib.rs Outdated Show resolved Hide resolved
pallets/gear/src/lib.rs Outdated Show resolved Hide resolved
pallets/gear/src/tests.rs Show resolved Hide resolved
@breathx
Copy link
Member

breathx commented Jun 16, 2022

The last thing to do is just wait for @osipov-mit review and PR

@gshep gshep added A2-mergeoncegreen PR is ready to merge after CI passes and removed A0-pleasereview PR is ready to be reviewed by the team labels Jun 17, 2022
Copy link
Member

@breathx breathx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great

into gshep/issue-1049

Conflicts:
	pallets/usage/src/offchain.rs
@breathx breathx merged commit 1a9d275 into master Jun 18, 2022
@breathx breathx deleted the gshep/issue-1049 branch June 18, 2022 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A2-mergeoncegreen PR is ready to merge after CI passes B1-releasenotes The feature deserves to be added to the Release Notes D2-node Gear Node
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refactor get_gas_spent to calculate_gas
5 participants